我有两个型号:
用户(电子邮件:字符串)
档案(姓名:字符串)
用户(电子邮件:字符串)
档案(姓名:字符串)
- class User < ActiveRecord::Base
- has_one :profile
- delegate :name,:name=,:to => :profile
- end
- class Profile < ActiveRecord::Base
- belongs_to :user
- end
铁轨
- u = User.new
- u.build_profile #=> init Profile
- u.name = 'foo'
- u.email = 'some@ema.il'
- u.save #=> both User and Profile are saved
- u.name = 'bar'
- u.save #=> true,but changes in Profile were not saved!
- u.email = 'new@ema.il'
- u.save #=> true,new User email was saved,Profile - still not!
- u.name #=> 'bar',but in database it's 'foo'
解决方法
ArcaneRain,您应该在关系中添加“自动保存”选项,而不是为此添加回调:
has_one:profile,:autosave =>真正
你还应该调查’依赖’选项.
更多信息:
http://guides.rubyonrails.org/association_basics.html#has_one-association-reference