【发布时间】:2012-12-12 06:28:32
【问题描述】:
案例1:为模型创建新记录并分配关联对象(Status 对象而不是 Status.id),例如
visit = Visit.create(:date => Date.today, :status => Status.first)
visit.status_id #=> 1
创建记录后
我正在尝试更新属性“status_id”(Status.id 而不是 Status 对象),但它返回旧值,甚至在保存对象后调用 reload。示例:
visit.status_id = Status.last.id
visit.save
visit.reload
visit.status_id #=> 1
当我在创建后调用 reload 方法时,它按预期工作
visit = Visit.create(:date => Date.today, :status => Status.first)
visit.status_id #=> 1
visit.reload
visit.status_id = 2
visit.save
visit.status_id #=> 2
案例 2:如果我分配 'status_id' 值而不是 Status 对象,则无需重新加载对象并且其工作正常
visit = Visit.create(:date => Date.today, :status_id => Status.first.id)
visit.status_id #=> 1
visit.status_id = 2
visit.save
visit.status_id #=> 2
使用上面的两种情况,什么时候应该使用reload方法呢?应该在save之前还是之后?
【问题讨论】:
标签: ruby-on-rails-3 activerecord associations reload