阻止搜索检查搜索输入的值

时间:2014-04-18 15:21:28

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

我正在使用meta_search gem来搜索我的目录中的产品。但是,当我第一次进入搜索页面或发送空白值时,将进行搜索并返回并列出所有产品。

我试图阻止检查搜索输入的值不是nil"",因此只有在文本字段中实际输入内容时才会执行搜索。

这是我的search.html.erb文件:

<%= render :partial => 'search_box' %>
<% if @products %>
    <p>The search "<%= params[:search][:name_contains] %>" returned <%= pluralize @products.size, "result" %>:</p>
    <%= render(:partial => "products") %>
<% end %>

_search_box.html.erb

<%= form_for @search, :url => "/catalog/search", :html => {:method => :get} do |f| %>
  <%= f.label :Name %>  
  <%= f.text_field :name_contains %>
  <%= f.submit 'Search' %>
<% end %>

search的{​​{1}}方法:

CatalogController

当我浏览 def search if params[:search] @search = Product.search(params[:search]) @products = @search.all unless @products.size > 0 flash.now[:notice] = "No results" end end end 时,出现以下错误:

/catalog/search

1 个答案:

答案 0 :(得分:1)

试试这个,我想这样就会找到你的@search

def search
  @search = Product.search(params[:search])
  if params[:search]
    @products = @search.all
    flash.now[:notice] = "No results" unless @products.size > 0
   end
end