我有一个@ parent
模型,它有很多@ kids
模型
@parent = Parent.find(par_id)
@kid = @parent.kids.first
@parent.update_attributes(params) #change parent's name
执行@kid.parent
与@parent
不同@kid.parent == @parent
唯一的区别是不同的Parent.name
这会导致使用旧的父名称使孩子的视图出错 在视图中:
<%= @kid.parent.name %> #=> this renders the old name and not the newly updated on
有没有办法刷新关联或模型?
答案 0 :(得分:1)
您可以使用ActiveRecord's reload方法。
@kid.parent.reload # or just @kid.reload
@kid.parent.name # the new name, freshly fetched from the DB
答案 1 :(得分:0)
为什么不在udpating @parent之后搜索@kid?喜欢
@parent = Parent.find(par_id)
@parent.update_attributes(params) #change parent's name
@kid = @parent.kids.first
让我们先完成一项针对该特定对象的工作,并在完成一项工作后使用它。
在您的情况下,分配是主要问题。分配@kid
对象后,它将与正在更新的对象分开