accepts_nested_attributes_forで生えたメソッドとcreateやupdateの関係性
【Rails】fields_for と accepts_nested_attributes_for - kzy52's blog
引用:
accepts_nested_attributes_forです。すごく便利。
profile_attributes= と academics_attributes= メソッドが追加される登録時
params = { user: { name: 'Test', profile_attributes: { nickname: 'test' } } }
user = User.create(params[:user])
user.profile.id # => 1
ser.profile.nickname # => 'test'更新時
params = { user: { profile_attributes: { id: '1', nickname: 'test2' } } }
user = User.find 1
user.update params[:user]
user.profile.nickname # => 'test2'
入れ子のFormで使うaccepts_nested_attributes_for
ですが、
末尾が=のメソッドができることがわかりました。
また末尾が=のメソッドの意味は、
ruby on rails - Rubyのメソッド名の末尾に = (イコール) - スタック・オーバーフロー
に質問させていただきわかりました。
さて、上記引用のcreate
とupdate
ですが、Hashを与えているだけにすぎず、accepts_nested_attributes_for
で生えた末尾が=のメソッドと関係性が頭の中でひも付きません。Hashを与えているだけに過ぎないのに新しくメソッドを生やす意味とはなんでしょうか? またこのようなテクニックが簡単にわかる簡単なサンプルソースを付けていただけるとうれしいです。