2010-11-30 56 views
4
class Author 
    has_many :books 

    validates :email, :presence => true 
end 

class Book 
    belongs_to :author 

    validates :title, :presence => true 
end 

跳過驗證很簡單:跳過驗證的相關對象 - 軌的ActiveRecord

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

不過,我需要跳過筆者驗證沒有跳過書的驗證創建一本書的時候,是這樣的:

b = Book.new 
b.title = "A Book" 

b.author = Author.last 
b.save 
+1

任何你不先創建一個有效作者然後創建該書的理由? – 2010-11-30 13:34:37

+0

這只是我的系統中的一個特例。 – 2010-11-30 13:41:50

回答

0

我完全不明白你的問題。在您的例子中,你沒有創建任何新author對象:

>  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 

嗯...也許我在這裏錯過了一些明顯的東西。

0

由於筆者驗證,同時節省您的模式似乎並不那麼重要,你可以寫你的書的模型是這樣的:

class Book 
    belongs_to :author, :validate => false 

    validates :title, :presence => true 
end 

這種方式,作者驗證將同時節省被跳過。