0

.select「line_id」を「instance」に割り当てるために使用しています。クラス「インスタンス」belongs_to「ライン」。

<%= line_builder.select('instance', 'line.line_id', Line.all.collect {|p| [p.title, p.id ]}, { :include_blank => 'select line' }) %>

この行はこのエラーを返します:

undefined method `merge' for #<Array:0x007fc3c389e868>

.selectここで何が問題になっているのかはよくわかりませんが、これまで使用したことがないため、メソッドの構文だと思います。

私がこれを理解するのを助けるために他に何をあなたに見せることができますか?

4

1 に答える 1

1

options_for_selectで試してください:

<%= line_builder.select(:line_id, Line.all.collect {|p| [p.title, p.id ]}, { :include_blank => 'select line' }) %>

機能しなかった理由:

select に追加の引数がありました: Form ビルダーの select は引数として update を呼び出すメソッドを受け取ります (ここline_idでは、Rails はline_idオブジェクトを呼び出して選択ボックスの値を割り当てます)、2 番目の引数はオプションです。選択の場合、3 番目のオプションはhtml_optionsas aHashです。html_options追加の引数があったため、Rails はオプションがハッシュであると予想していましたが、これは選択のオプションでした。

于 2013-02-13T16:56:38.810 に答える