select_yearとか
select_monthとか
select_dateとか
select_hourとか
select_minuteとか
select_secondとかのヘルパを使いたくなるときがある。
で、複数の日付を別々に指定したいと。
たとえば、期間を指定するのに開始年、開始月、終了年、終了月を指定するとする。
オプション無しだと、同じselect_yearとselect_monthは同じパラメータで渡っちゃうので良くない。
で、
field_nameオプションを使うわけだが、ここに落とし穴が。
view:
開始年月
<%= select_year Date.today, :field_name=>'start_year' %>
<%= select_month Date.today, :field_name=>'start_month' %>
終了年月
<%= select_year Date.today, :field_name=>'start_year' %>
<%= select_month Date.today, :field_name=>'start_month' %>
とやる。
素直に考えると、コントローラーで
params[:start_year],params[:start_month]とかで取得できそうなもんだが、
実際の所はparams[:date]のハッシュになって帰ってくる。
実際に取得するときはこう。
params[:date][:start_year]
params[:date][:start_month]
params[:date][:end_year]
params[:date][:end_month]
ちょっとはまっちゃったのでメモ。
つーか、なんで:dateのハッシュな訳?
いまいち納得いかない。:dateのハッシュ以外で取得する方法は見つからず。
むむむむ・・・・
追記
:dateのハッシュ以外で取得したいときは、
select_datetimeの:prefixオプションを使えばいい。
:discardオプションで必要ないやつを隠す。
PR