Ruby on rails 3.1 返回0个记录元搜索
我使用的是Rails 3.1,我使用的是。这是我的控制器中的内容:Ruby on rails 3.1 返回0个记录元搜索,ruby-on-rails-3.1,meta-search,Ruby On Rails 3.1,Meta Search,我使用的是Rails 3.1,我使用的是。这是我的控制器中的内容: @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:&
@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文档的要求。但是,如果我的搜索表单不包含任何参数(即未指定搜索),它将返回所有记录。我想要的是没有返回任何记录
我的Ruby非常弱,如果没有参数[:q]或者参数[:q]没有指定任何搜索条件(即用户提交了一个空表单),那么有人能告诉我如何让@people干净地返回一个空数组吗
本质上我的问题与此相同,但解决方案似乎不适用于Ransack,因为它抱怨“搜索属性”不是一种可用的方法
重要的是,它返回0条未提交参数且提交空参数的记录。任何解释代码工作原理的注释都有助于理解。谢谢。您可以将控制器代码替换为:
if !params[:q].blank? # nil.blank? and [].blank? are true
@q = Person.search(params[:q])
@people = @q.result
else
@people = []
end
谢谢你真是太好了。对#nil.blank的解释?和[]。空白?这也很有帮助。