2013-09-18 5 views
0

Я попытался с одним параметром, и теперь я хочу, чтобы форма поиска работала как для названия, так и для тела с помощью кнопки поиска через интерфейс. http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&ved=0CEIQtwIwAw&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAB_D-G7wAsc&ei=2Fk5UoXhH8forQeDkYGAAw&usg=AFQjCNGog91uLZoTOCPLsVsxp9pZk7CpPA&bvm=bv.52288139,d.bmkПередача двух параметров сразу в Rails Ransack

ответ

0

Вы можете использовать поля с именами, как

User.search(:title_or_body_cont => "Rya").result 

см Ransack dokumentation

Ransack «s search метод принимает хеш предикатами и значений, в приведенном выше примере

{: title_or_body => «Луч»}

Форма helper search_form_for обертывает поля ввода таким образом, что все предикаты отправляются как хеш с именем q (из-за этого вы можете изменить это в конфигурации, но лучше остановиться с соглашением).
Так форма, как

<% search_form_for @search do |f| %> 
    <%= f.content_cont %> 
    <%= f.title_or_body_cont %> 
<% end %> 

возвращает параметр :q, содержащий хэш-

params[:q] ==> { :content_cont => "foo", :title_or_body_cont => "bar" } 

и контроллер может создать новый поиск, как

@search = Post.search(params[:q]) 
@posts = @search.result 

где ищется «бар» альтернативно в title или body и «foo» выполняется в content.

+0

Не могли бы вы добавить свой код в вопрос и отформатировать его (отступ по 4 местам) –

Смежные вопросы