Pergunta

Mudei meu modelo de foto.rb para ser polimórfico e ser utilizável para todos os tipos de outros modelos que precisam salvar imagens e funciona bem, exceto que não consigo descobrir como salvar novos anexos corretamente através do modelo pai. Alguma ideia? Eu tenho que abordar isso de maneira diferente de alguma forma? Como, também não está recebendo o Imageable_type ... que terei que adicionar.

Eu vi o plug -in de clipe de papel polimórfico que se parece com uma fera e usa mais uma tabela? Então, espero uma melhor vida por aí.

Estou entendendo:

ActiveRecord::AssociationTypeMismatch (Photo(#2189565500) expected, got Array(#2148226700))

Parameters: {"commit"=>"Create", "action"=>"update", "_method"=>"put", "authenticity_token"=>"kp7NeMs7moGwu0AZMXVowUpphp9vzitdZZ6t8YO7RKQ=", "id"=>"2586", "muffin"=>{"photos"=>{"data"=>#<File:/var/folders/4d/4dqp9CQQEbmM1akqbtLxzk+++TI/-Tmp-/RackMultipart20100218-11622-onqem2-0>}}, "controller"=>"muffins"}

muffin.rb

has_many :photos, :as => :imageable, :dependent => :destroy

foto.rb

belongs_to :imageable, :polymorphic => true
has_attached_file :data,
    :storage => 's3',
    :s3_credentials.....
Foi útil?

Solução

Eu tive a ideia de usar aceita_nested_attributes_for, pois é isso que eu poderia fazer se não fosse uma associação polimórfica, mas outro modelo em que eu estava jogando atributos em .. e pronto, funcionou.

  has_many :photos, :as => :imageable, :dependent => :destroy
  accepts_nested_attributes_for :photos
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top