Ruby on rails Rails-删除未保存的关联记录
假设我有一个包含许多文章的用户模型 如果我多次调用user.articles.new,我将有许多未保存的文章对象与该用户关联。当您运行user.articles时,它们是可见的。调用user.save将保存所有未保存的记录Ruby on rails Rails-删除未保存的关联记录,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,假设我有一个包含许多文章的用户模型 如果我多次调用user.articles.new,我将有许多未保存的文章对象与该用户关联。当您运行user.articles时,它们是可见的。调用user.save将保存所有未保存的记录 如何删除未保存的记录?我计划调用user.save,但我不希望那些未保存的记录出现在那里一个选项将是user.articles.delete_if{a | a.new_record?},但这听起来像是解决实际问题的一个方法,@regulatethis在您的问题评论中指出了这一
如何删除未保存的记录?我计划调用user.save,但我不希望那些未保存的记录出现在那里一个选项将是
user.articles.delete_if{a | a.new_record?}
,但这听起来像是解决实际问题的一个方法,@regulatethis在您的问题评论中指出了这一点。在验证之前,我使用了以下变通方法:删除空白文章代码>:
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
如果不想创建新的文章记录,为什么要多次调用user.articles.new
?这实际上并不会破坏记录。用控制台试过了。如果没有简单的方法,我可能应该解决根本问题