【发布时间】:2011-10-25 08:33:29
【问题描述】:
我在 Rails 3.1 上使用 Ransack Gem。这就是我的控制器中的内容:
@q = Person.search(params[:q])
@people = @q.result
这是我的看法:
<%= search_form_for @q do |f| %>
<label>Given Name:</label>
<%= f.text_field :given_name_cont %>
<label>Family Name:</label>
<%= f.text_field :family_name_cont %>
<%= f.submit %>
<% end %>
这很好用,并且符合 Ransack 文档。但是,如果我的搜索表单不包含任何参数(即没有指定要搜索的内容),它会返回 ALL 记录。我想要发生的是返回 NO 条记录。
我的 Ruby 很弱,如果没有 params[:q] 或 params[:q] 没有指定任何搜索条件(即用户提交了一个空表格)。
基本上我的问题与Metasearch question on StackOverFlow 相同,但该解决方案似乎不适用于 Ransack,因为它抱怨“search_attributes”不是可用的方法。
重要的是它返回 0 条没有提交参数和提交空参数的记录。任何解释为什么你的代码有效的注释都会很好。谢谢。
【问题讨论】:
标签: ruby-on-rails-3.1 meta-search