accept_nested_attributes_forから始まる昼ドラのようなモデル設計のトゥルーエンドはどこなのか
プレゼンテーションは掴みが大切だそうです。
余談でしたね。
お聞きしたいことは題名の通りです。
Controllerで、あるModelにcreate
が実行されました。
Modelには多くの関連付け、バリデーションにコールバック、デリゲートやらアクセッサ生成?やらてんこ盛り。
その中に、accept_nested_attributes_for
もいました。
コードはざっくり以下です。
お仕事のものなので記憶を頼りに簡略化して書いております。
class Parent < ActiveRecord
has_one :children
delegate :children_method, to: :children
accept_nested_attributes_for :children
validates :children_method, on: :create
before_save :fuga
attr_accessor :name
def fuga
# ビフォアセーブ
end
end
class Children < ActiveRecord
belong_to :parent
validates :hoge, on: :create
def hoge
# バリデーション
end
def children_method
@children_name ||= parent.name
end
end
前提として、ActiveRecordのcreate
は、内部的にはnew
してsave
していると思っております。
もしこれが違ったら教えてくださると幸いです。
質問は以下です。
・親モデルがcreate
されたとき、子モデルに対してもcreate
が走るのでしょうか。
具体的には、子モデルのvalidates :hoge, on: :create
が実行されるのかどうか。
・親モデルがcreate
されたとき、各メソッド、コールバックなどはどの順番で呼ばれるのか。
お伺いしたいことは山ほどありますが、一旦はこの辺りをご教授願いたいです。
トゥルーエンドに導いて下さると幸いです。