同じにやっても動かない

書いてある通りやっているのに動かないのです

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