ActiveAdminでhas_oneのassociationに対するnestしたフォームを作る
has_oneのネストしたフォームをActiveAdminで書いたことがなく、ハマったのでメモ代わりに書きます。
Rails 4以降であれば、以下のように書けます。
親モデルParent、子モデルChildが以下のように定義されているときに、
class Parent < ActiveRecord::Base
has_one :child
end
class Child < ActiveRecord::Base
belongs_to :parent
end
ActiveAdminのParentモデルのフォームでは、ヘルパーの:forを使って、以下のように駆ける。(permitなどの記載は省略)
ActiveAdmin.register Parent do
form do |f|
f.inputs "子モデルの編集", :for => [:child, f.object.child || Child.new] do |child|
child.input :hoge
end
end
end
:for のところでは、既存のオブジェクトで、すでにchildモデルが設定されていればそれを使い、なければ、Childモデルをnewする、というように書いておく。これで、新規作成時は新しいChildモデルが作られ、更新時は既存のものが使われる。
Author And Source
この問題について(ActiveAdminでhas_oneのassociationに対するnestしたフォームを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/setoyama-precena/items/d47a00bb3344fe4b10dc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .