ruby-on-rails – Rails委托更新调用

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails委托更新调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个型号:
用户(电子邮件:字符串)
档案(姓名:字符串)
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

原文链接:https://www.f2er.com/ruby/268115.html

猜你在找的Ruby相关文章