无法在同一视图中使用带关联的更新模型

时间:2014-05-19 09:28:20

标签: ruby-on-rails caching ruby-on-rails-4 model model-associations

我有一个@ 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

有没有办法刷新关联或模型?

2 个答案:

答案 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对象后,它将与正在更新的对象分开