0

以下の月/年にデフォルトの :selected 値を指定すると、検索後に常にこれらに戻ります。検索後にページがロードされた後、デフォルトではなく、実行された検索の選択に選択を設定する方法はありますか?

これには、コントローラーでデフォルトを一度設定し、検索が最初ではないか、他の値が選択されていると判断された場合はそれらを無視する必要があると思います。

<%= 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 %>
4

1 に答える 1

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 %>

パラメータ構造を反映するように編集されています。

于 2013-04-05T12:49:37.570 に答える