Rus*_*nov 8 delegates ruby-on-rails
我有两个模型:(
User电子邮件:字符串)
Profile(名称:字符串)
class User < ActiveRecord::Base
has_one :profile
delegate :name, :name=, :to => :profile
end
Run Code Online (Sandbox Code Playgroud)
class Profile < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
rails c
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'
Run Code Online (Sandbox Code Playgroud)
为什么未更新配置文件(仅首次保存)?如何解决这个问题?
gam*_*mov 12
ArcaneRain,您应该在关系中添加"自动保存"选项,而不是为此添加回调:
has_one :profile, :autosave => true
你还应该调查'依赖'选项.更多信息:http: //guides.rubyonrails.org/association_basics.html#has_one-association-reference
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |