2016-12-28 63 views
0

我有模型書內嵌許多文件和文章。模型文檔和文章有一些驗證。當我保存嵌入模型時,我的目標是跳過所有嵌入模型的驗證。在我的情況下,我想在保存一本書時跳過對文檔和文章的驗證(但不要跳過這本書)。可能嗎? 這裏的代碼如何在保存嵌入模型的嵌入模型時跳過驗證?

class Book 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    field :name 

    embeds_many :documents 
    embeds_many :articles 

    validates :name, presence: true 
end 

class Document 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    field :name 

    embedded_in :book 

    validates :name, presence: true 
end 

class Article 
    include Mongoid::Document 
    include Mongoid::Timestamps 

    field :name 

    embedded_in :book 

    validates :name, presence: true 
end 

b = Book.new 
b.name = 'super book' 
b.documents = [Document.new] 
b.articles = [Article.new, Article.new] 
b.save 

剪斷所以我想這個方法「保存」不運行嵌入式文件和物品驗證,只爲書。即使我沒有文檔和文章的名字,這也應該可以保存這本書。

+1

你的問題是難以遵循,可能是由於術語。例如,Rails沒有任何「嵌入文檔」的概念。你能否澄清一下,或許提供你正在使用的代碼? – coreyward

+0

請發佈您的代碼。 –

回答

1

添加validate: false在模型中定義

embeds_many :documents, validate: false 
embeds_many :articles, validate: false 
+0

這不會爲所有型號運行驗證。我希望它們只能用於主模型,而不適用於嵌入式模型。 –

+1

embeds_many:documents,validate:false' embeds_many:articles,validate:false'? – bananaappletw

+0

是的)工作!謝謝 –