回形针多态关联与保存

时间:2010-02-18 13:28:18

标签: ruby-on-rails ruby polymorphism paperclip polymorphic-associations

我将photo.rb模型更改为多态并可用于需要保存图像的各种其他模型,并且工作正常,但我无法弄清楚如何通过父模型正确保存新附件。有任何想法吗?我不得不以某种方式对待这种方式吗?因为,它也没有得到imageable_type ...我将不得不添加。

我看到了多态回形针插件看起来像野兽并使用另一张桌子?所以我希望能有更好的解决方法。

我得到了:

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

photo.rb

belongs_to :imageable, :polymorphic => true
has_attached_file :data,
    :storage => 's3',
    :s3_credentials.....

1 个答案:

答案 0 :(得分:4)

我有了使用accepts_nested_attributes_for的想法,因为如果它不是多态关联,那就是我可能会做的事情,但是另一个模型我正在抛出属性...瞧,它有效。

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