3
我再問this question,因爲代碼和示例是錯誤的(它實際上在所示情況下工作)。Rails的ActiveRecord:跳過驗證的協會
鑑於這些機型:
class Author < ActiveRecord::Base
has_many :books
validates_presence_of :email
end
class Book < ActiveRecord::Base
belongs_to :author
validates_presence_of :title
end
創建一本書時,我們可以跳過驗證:
b = Book.new
b.save(:validate => false)
但是,如果我們從數據庫中檢索無效的書籍,並在作者指定的關聯,我們不允許保存作者:
a = Author.new
a.email = "foo"
a.books = Book.all
a.save!
這是錯誤:
ActiveRecord::RecordInvalid: Validation failed: Books is invalid
我們如何跳過相關書籍模型的驗證而不跳過作者?
請注意,在作者說has_many :books, :validate => false
沒有幫助:關聯被默默丟棄與作者保存。
謝謝!你的代碼有效。我忽略了關聯正在更新外鍵(因此模型需要有效)。 – 2010-12-16 00:51:29