正在删除 Rails 中的关联记录
Deleting association record in Rails
我有两个模型。
class User<<ActiveRecord::Base
has_many :projects
end
class Project<<ActiveRecord::Base
belongs_to :user
end
然后在控制台中,我在变量 'p' 中加载了一个项目,在变量 'u' 中加载了一个用户。
考虑以下命令
u = User.first
p = Project.first
u.projects<<p
现在,
u.projects 和 p.user,两者都显示正确的 amd 预期输出。
我的问题是如何从用户 'u' 的项目中删除项目 'p',以便结果反映在两个模型中。
我试过
u.projects.delete(p)
这只会从 'u'
的项目中删除 'p'
但 p.user 仍然显示 'u',这是我不想要的。
那么,我该如何管理呢?
使用 u.reload
进行重新加载操作解决了我的问题。
感谢 mr_sudaca
的建议。重新加载操作从数据库中获取记录的最新状态并刷新存储在内存中的对象以反映对象的最新状态。
我有两个模型。
class User<<ActiveRecord::Base
has_many :projects
end
class Project<<ActiveRecord::Base
belongs_to :user
end
然后在控制台中,我在变量 'p' 中加载了一个项目,在变量 'u' 中加载了一个用户。 考虑以下命令
u = User.first
p = Project.first
u.projects<<p
现在,
u.projects 和 p.user,两者都显示正确的 amd 预期输出。
我的问题是如何从用户 'u' 的项目中删除项目 'p',以便结果反映在两个模型中。
我试过
u.projects.delete(p)
这只会从 'u'
的项目中删除 'p'但 p.user 仍然显示 'u',这是我不想要的。 那么,我该如何管理呢?
使用 u.reload
进行重新加载操作解决了我的问题。
感谢 mr_sudaca
的建议。重新加载操作从数据库中获取记录的最新状态并刷新存储在内存中的对象以反映对象的最新状态。