私は親のUser
モデルを持っていて、それぞれのユーザーはhas_one
Contact
というユーザーの連絡先情報を保持しています。親モデルの子協会の設定者を無効にする
連絡先フィールドの1つはemail
です。
User
の財産であるかのように私はこれを行うにはしたいと思い、直接#email
を呼び出すことができるのが大好きですこれに代えて
user.email
user.email = "[email protected]"
- 親から子供のゲッター/セッターをオーバーライドし、次のように私は私のモデルを打ち出し
user.contact.email
user.contact.email = "[email protected]"
User
-
class User < ActiveRecord::Base
has_one :contact
def email
contact.email
end
def email=(value)
contact.email = value
end
end
class Contact < ActiveRecord::Base
belongs_to :user
end
あなたはすでにセッターに気付いているかもしれません。User
が保存されている場合、子モデルは保存されません。
これを回避するには最も堅牢な方法はありますか?
ありがとうございます!