如果我指定一个默认值:下面几个月/几年的选定值,那么搜索后它总是会恢复为这些值。有没有办法在搜索后加载页面后,将选择设置为执行搜索的选择而不是默认值?
我想这需要在控制器中设置一次默认值,如果确定搜索不是第一个或者选择了其他值,则忽略它们。
<%= search_form_for @search, :html => {} do |f| %>
<div class="control-group">
<div class="controls form-inline">
<%= f.select :rollout_month_eq, months, {:selected => months[Date.today.month - 1]} %>
<%= f.select :rollout_year_eq, years, {:selected => years[1]} %>
<%= f.submit "Apply" %>
</div>
</div>
<% end %>
答案 0 :(得分:1)
它应该像确定参数是否为nil
一样简单。
<%= search_form_for @search, :html => {} do |f| %>
<div class="control-group">
<div class="controls form-inline">
<%= f.select :rollout_month_eq, months, {:selected => params[:q].try(:[], :rollout_month_eq) || months[Date.today.month - 1]} %>
<%= f.select :rollout_year_eq, years, {:selected => params[:q].try(:[], :rollout_year_eq) || years[1]} %>
<%= f.submit "Apply" %>
</div>
</div>
<% end %>
编辑以反映您的参数结构。