我正在使用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
答案 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