inohilog

/var/log/inohiro

time_select ヘルパを使うときに、include_blank オプションを有効にすると「ActiveRecord::MultiparameterAssignmentErrors」が起こる問題

最近見つけたエラー。form_forのなかで、時間を選択するときにtime_selectヘルパを使いますが、デフォルトだとページがロードされたときのサーバーの時間が(自動的に/勝手に)選択されています。

これをやってほしくないときに、include_blank オプションを指定すると、空の値がドロップダウンボックスに追加されます。

<%= f.time_select open, :include_blank => true %>

しかしこれを使うと、これを使ったtime_selectで任意の値を設定してpostすると「ActiveRecord::MultiparameterAssignmentErrors」が起こってしまいます。とりあえず応急処置として*1include_blankしたいtime_selectヘルパが含まれているViewが呼ばれるメソッド(今回は新規作成(hoges/new)だった)で、「Model.new」した後に「Time.Parse( "00:00" )」を代入するようにしました。さらに、見せる側のView(hoges/idとか)で工夫など。

結局、include_blankをtrueにしてもMultiparameterAssignmentErrorsが起こらないようにする方法がわからないのですが(そもそも原因がよくわからん)、どうしたらいいんでしょう。

*1:レポートとか課題で、原因を突き止めて修正するには時間がry