在Rails Ransack中一次传递两个参数

时间:2013-09-18 07:44:42

标签: ruby-on-rails

1 个答案:

答案 0 :(得分:0)

您可以使用名称为

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

请参阅Ransack dokumentation

Ransack的{​​{1}}方法采用谓词和值的哈希值,在上面的示例中

{:title_or_body => “雷”}

表单帮助器search包装输入字段,以便所有谓词都以名称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中搜索“bar”,在body中搜索“foo”。