2011-09-24 137 views
2

我第一次使用太阳黑子,并试图设置搜索。全文搜索似乎工作正常。然而,我有一个搜索框和多个用户可以选择布尔字段的过滤器。不知何故,搜索框工作正常,但solr并没有把单个的布尔值作为附加的过滤器。另外,当我没有做任何搜索文本,只想通过布尔字段进行搜索时,什么都不会发生。任何帮助,将不胜感激:使用太阳黑子的搜索表单/ solr

这是我的控制器:

@search = Project.search do 
    fulltext params[:search] 
    facet(:master_bedroom) 
    facet(:dining_room) 
    facet(:bath) 
    with(:master_bedroom, params[:mb]) if params[:mb].present? 
    with(:dining_room, params[:dr]) if params[:dr].present? 
    with(:bath, params[:p_bath]) if params[:p_bath].present? 
end  

我在模型中的字段:

searchable do 
text :description 
boolean :dining_room 
boolean :bath 
boolean :master_bedroom 
end 

和我的观点,我有以下:

<%= form_tag projects_path, :method => :get do %> 

<%= text_field_tag :search, params[:search] %> 
<%= check_box_tag :bath, 'true'%> 
<%= submit_tag "Search", :name => nil %> 

<% end %> 

回答

0

变量命名时出错。

+0

小心详细说明这个错误在哪里? –

+0

我已经忘记在过去的两年:)。我隐约记得它是拼写错误的变量之一。啊,这里是在上面的代码中:with(:bath,params [:p_bath])if params [:p_bath] .present?它使用“p_”,而我的其他代码没有。 – jignesh