Rails – nested_formを使う時は”nested_form_for”を利用(”form_for”ではない)

 

Ruby on Railsでは、フォーム中に入力項目(input)を追加可能とするには”nested_form”を使えば簡単。

基本的には”nested_form”をgemファイルに追加するだけ。

これで
・link_to_add
・link_to_remove
の2つのメソッドが使えます。

ここで問題が発生。

「undefined method `link_to_remove’」なんて言われてしまいました。

原因と解決方法

“link_to_add”と”link_to_remove”を使うには、form_forメソッド内ではなく、nested_form_forメソッド内である必要がある、ようです。

元々、form_forメソッドで作ったフォームに追加実装していたため、機能しなかったようです。

form_forからnested_form_forに変更したら想定通りの動作になりました。

なお、INTER-ARTEQの記事「[Rails] nested_attributesの使い方」を参考にさせて頂きました。

関連記事:
Rails – 1つのフォームで複数モデルのデータを扱う方法
TechAcademyの体験談 – 良い所・悪い所

スポンサード リンク

  関連記事

Ruby on Rails
Rails – 1つのフォームで複数モデルのデータを扱う方法

Ruby on Railsで ・1つのフォームで ・複数のモデルのデータを扱いた …

Ruby on Rails
Rails – pathヘルパーでURLがスラッシュではなくドットになる

products_path()というヘルパーが存在した場合、products_p …

↑PageTop