Ruby on rails 如何使用Searchlogic设置默认搜索条件?

Ruby on rails 如何使用Searchlogic设置默认搜索条件?,ruby-on-rails,ruby,searchlogic,Ruby On Rails,Ruby,Searchlogic,我在这页上有一张搜索表: 如果从下拉列表中选择一个状态,则会得到零结果,因为您没有选择一个或多个事件划分复选框 我想要的是在页面首次加载时将复选框默认为选中…以显示所有分区中的事件…但我希望用户所做的更改在过滤时得到反映 以下是我的事件控制器中的索引方法: def index @search = Event.search(params[:search]) respond_to do |format| format.html # index.html.erb format

我在这页上有一张搜索表:

如果从下拉列表中选择一个状态,则会得到零结果,因为您没有选择一个或多个事件划分复选框

我想要的是在页面首次加载时将复选框默认为选中…以显示所有分区中的事件…但我希望用户所做的更改在过滤时得到反映

以下是我的事件控制器中的索引方法:

def index
  @search = Event.search(params[:search])

  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @events }
  end
end
这是我的搜索表:

<% form_for @search do |f| %>

<div>
<%= f.label :state_is, "State" %> <%= f.select :state_is, ['AK','AL','AR','AZ','CA','CO','CT','DC','DE','FL','GA','HI','IA','ID','IL','IN','KS','KY','LA','MA','MD','ME','MI','MN','MO','MS','MT','NC','ND','NE','NH','NJ','NM','NV','NY','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VA','VT','WA','WI','WV','WY'], :include_blank => true %>
</div>

<div>
    <%= f.check_box :division_like_any, {:name => "search[:division_like_any][]"}, "Sprint", :checked => true %> Sprint (2+ hours)<br/>
    <%= f.check_box :division_like_any, {:name => "search[:division_like_any][]"}, "Sport" %> Sport (12+ hours)<br/>
    <%= f.check_box :division_like_any, {:name => "search[:division_like_any][]"}, "Adventure" %> Adventure (18+ hours)<br/>
    <%= f.check_box :division_like_any, {:name => "search[:division_like_any][]"}, "Expedition" %> Expedition (48+ hours)<br/>
</div>

<%= f.submit "Find Events" %>
<%= link_to 'Clear', '/events' %>
<% end %>

有几种方法可以做到这一点,我认为最简单/最快的方法是:

@search = Event.search(params[:search] || Event::DEFAULT_SEARCH_PARAMETERS)
In event.rb

class Event < A:RB
  DEFAULT_SEARCH_PARAMETERS = {:state_is => 'NY', :foo => 'bar'} # set your defaults here
end
话虽如此,我不确定复选框将如何工作。您也可以考虑以下选项之一:

拥有一个包含所有可搜索参数的SearchSetting模型。如果用户可以保存搜索,或者只是保持其断开连接,您也可以为用户保留该模型。这将使您的表单更加简单


添加默认选中的“所有分割”复选框。使用一点javascript来管理复选框的状态和自定义搜索方法。

我喜欢您的第一种方法。看起来我所做的应该很简单…只是默认一堆复选框…但我一直在努力。现在给你的第一个建议一个机会。谢谢下面是我的默认搜索参数语句:默认搜索参数={:除法搜索参数like\u any=>[0,Sprint,0,Sport,0,Adventure,0,Expedition]}获取未初始化的常量事件控制器::默认搜索参数。有什么想法吗?你把常数放在哪里了?这是我的错,它应该是Event::DEFAULT\u SEARCH\u参数。