2013-03-19 3 views
1

J'ai un modèle de conception qui a deux attachements Paperclip à l'intérieur de deux associations (full_image et aperçu). Je souhaite pouvoir enregistrer des conceptions uniquement lorsque full_image et preview ont des fichiers valides mais ne semblent pas pouvoir le faire fonctionner. En ce moment, c'est ce que je m'attendais à travailler, mais cela ne suffit pas à valider les pièces jointes lorsque je soumets le formulaire.Comment valider une pièce jointe dans un modèle imbriqué?

class Design < ActiveRecord::Base 

    has_one :full_image, :as => :assetable, :class_name => "FullImage", :dependent => :destroy 
    has_one :preview , :as => :assetable, :class_name => "Preview" , :dependent => :destroy 

    accepts_nested_attributes_for :full_image, :preview 
    validates_associated :preview, :full_image 

end 

class Asset < ActiveRecord::Base 
    belongs_to :assetable, :polymorphic => true 
    delegate :url, :to => :attachment 
end 

class FullImage < Asset 
    has_attached_file :attachment 
    validates_attachment_presence :attachment 
end 

class Preview < Asset 
    has_attached_file :attachment 
    validates_attachment_presence :attachment 
end 

Quelqu'un pourrait me suggérer ce que je devrais faire?

Répondre

0

Voici comment je l'ai eu à travailler

class Design < ActiveRecord::Base 

    has_one :full_image, :as => :assetable, :class_name => "FullImage", :dependent => :destroy 
    has_one :preview , :as => :assetable, :class_name => "Preview" , :dependent => :destroy 

    accepts_nested_attributes_for :full_image, :preview 

    validates_presence_of :preview 
    validates_presence_of :full_image 

end 

class Asset < ActiveRecord::Base 
    belongs_to :assetable, :polymorphic => true 
    delegate :url, :to => :attachment 
end 

class FullImage < Asset 
    has_attached_file :attachment 
end 

class Preview < Asset 
    has_attached_file :attachment 
end 
1

Essayer: valide: pièce jointe,: présence => true à l'intérieur du modèle associé au lieu de validates_attachment_presence