Rails - 删除未保存的关联记录

2023-12-23

假设我有一个包含很多文章的用户模型。

如果我多次调用 user.articles.new,我将有许多与该用户关联的未保存的文章对象。当您运行 user.articles 时,它们是可见的。调用 user.save 将保存所有未保存的记录。

如何删除未保存的记录?我打算调用 user.save 但我不希望那些未保存的记录存在


我使用以下解决方法before_validation :remove_blank_articles!:

class User
  has_many :articles

  validates_associated :articles

  before_validation :remove_blank_articles!

  private
    def remove_blank_articles!
      self.articles = articles - articles.select(&:blank?)
      true
    end
end

class Article
  belongs_to :user

  validates_presence_of :title, :body

  def blank?
    title.blank? and body.blank?
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails - 删除未保存的关联记录 的相关文章

随机推荐