【问题标题】:Deleting association record in Rails在 Rails 中删除关联记录
【发布时间】:2017-04-17 15:00:16
【问题描述】:

我有两个模型。

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.reloadu.projects 不应显示已删除的项目
  • 感谢您的帮助。您的回答实际上解决了我对关联的大部分疑问。 :)

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多