Cocoonでhas_oneな関連モデルのフォームを作りたいとき
ひさびさのRailsネタ。
has_manyな関連モデルを一挙に 生成 / 更新 / 削除 できるフォームを作るのにとても便利なcocoon。
has_oneな関連モデル用フォームでも使いたいのだけど、link_to_add_association ヘルパーを普通に使うとうまく動きません。
以下のように :force_non_association_create オプションを入れると期待どおりに動くようになります。
= link_to_add_association('add something', @form_obj, :comments, :force_non_association_create => true)
実際の動作は以下の感じです。
- 保存済みのレコードが無い場合は新規作成
- 保存済みのレコードがある場合は最後にlink_to_add_associationで追加された内容で登録済みレコードを更新
※ 参考サイト
github.com