読者です 読者をやめる 読者になる 読者になる

49hack

見習いエンジニアが魔法使いになるまで

date_selectで生成されるnameを変更する

select_dateでは受け取るパラメータを変更したい場合は、nameを変更する必要があります。 今回はgsubを使ってゴリゴリ置換で解決します(他にもっといい方法があるかもしれない)。

通常パターン

select_date(Date.new)
<select name="date_year" id="date[year]">
<select name="date_month" id="date[month]">
<select name="date_day" id="date[day]">

gsubを使って修正するパターン

date[hoge]をdate_hogeに変更します。

こうすることで受け取るパラメータがハッシュでなくなります。

select_date(Date.new).gsub(/\[(.+?)\]/,'_\1')
<select name="date_year" id="date_year">
<select name="date_month" id="date_month">
<select name="date_day" id="date_day">