跳过相关对象的validation – rails activerecord

class Author has_many :books validates :email, :presence => true end class Book belongs_to :author validates :title, :presence => true end 

跳过validation很简单:

 a = Author.new a.save(:validate => false) 

但是,在创建书籍而不跳过书籍validation时,我需要跳过作者validation,如下所示:

 b = Book.new b.title = "A Book" b.author = Author.last b.save 

我完全不明白你的问题。 在您的示例中,您没有创建任何新的作者对象:

 > b = Book.new > b.title = "A Book" > > b.author = Author.last > b.save 

如果您尝试在没有电子邮件的情况下创建新作者,那么您不能这样做:

 b = Book.new b.title = "A Book" author = Author.new author.save(:validate => false) b.author = author b.save 

嗯……也许我只是错过了一些明显的东西。

由于在保存模型时作者validation似乎不那么重要,您可以像这样编写Book模型:

 class Book belongs_to :author, :validate => false validates :title, :presence => true end 

这样,在保存时将跳过作者validation。