跳过相关对象的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。