我有两个型号:
用户(电子邮件:字符串)
档案(姓名:字符串)
用户(电子邮件:字符串)
档案(姓名:字符串)
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