删除Rails中的关联记录

时间:2016-12-02 16:18:16

标签: ruby-on-rails-4 model-associations delete-record

我有两个模特。

class User<<ActiveRecord::Base
has_many :projects
end

class Project<<ActiveRecord::Base
belongs_to :user
end

然后在控制台中,我在变量&#39; p&#39;中加载一个项目。以及变量&#39; u&#39;中的用户。 请考虑以下命令

u = User.first
p = Project.first
u.projects<<p

现在,

u.projects和p.user,两者都显示正确的amd预期输出。

我的问题是如何删除项目&#39; p&#39;来自用户的项目&#39; u&#39;结果反映在两个模型中。

我尝试过做

u.projects.delete(p)

这只会删除&#39;来自&#39; u&#39;

的项目

但p.user仍然显示“你好”。这是我不想要的。 那么,我该如何管理呢?

1 个答案:

答案 0 :(得分:1)

使用u.reload进行重新加载操作解决了我的问题。 感谢mr_sudaca的建议。重新加载操作从db获取记录的最新状态,并刷新存储在内存中的对象以反映对象的最新状态。