Rails: find_by_contents с условиями; синтаксис помогите пожалуйста - PullRequest
1 голос
/ 05 февраля 2011

Поиск ограничения для поиска на основе условий в Rails 2.0.2.

Оператор поиска:

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ])

Необходимо добавить условие для ограничения поиска

:conditions=>["archived = '0'"]

Хотя это не работает

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["archived = '0'"])

Кто-нибудь знает, какой должен быть синтаксис?

Ответы [ 3 ]

0 голосов
/ 05 февраля 2011

Во-первых, какая у вас ошибка?

И попробуйте это

@employees = Employee.find_by_contents(params[:keywords].to_s, :include => [ :categories, :revisions, :approvals, :archives, :related_documents ], :conditions=>["employees.archived = ?", false])
0 голосов
/ 07 февраля 2011

У меня было достаточно времени с добавлением условия к ferret find_by, поэтому я добавил команду post для фильтрации, если она заархивирована. Если вы все еще думаете о лучшем пути, дайте мне знать. Спасибо.

@employees = Employee.find_by_contents(params[:keywords].to_s, 
              :include => [ :categories, :revisions, :approvals, 
                            :archives, :related_documents ])
@employees = @employees.find_all {|p| !p.archived}
0 голосов
/ 05 февраля 2011

Если вы передаете условия массиву, я думаю, что это должно быть для параметризованного условия.Попробуйте выполнить одно из следующих действий:

    @employees = Employee.find_by_contents(params[:keywords].to_s, 
                  :include => [ :categories, :revisions, :approvals, 
                                :archives, :related_documents ], 
                  :conditions=> "archived = '0'")

или

@employees = Employee.find_by_contents(params[:keywords].to_s,                           
                  :include => [ :categories, :revisions, :approvals, 
                                :archives, :related_documents ],
                  :conditions=>["archived = ?",'0'])
...