سؤال

لقد غيرت نموذج صورتي. RB ليكون متعدد الأشكال وأن أكون قابلاً للاستخدام في جميع أنواع النماذج الأخرى التي تحتاج إلى حفظ الصور وتعمل بشكل جيد إلا أنني لا أستطيع معرفة كيفية حفظ المرفقات الجديدة بشكل صحيح من خلال النموذج الأصل. أيه أفكار؟ هل يجب أن أتعامل مع هذا بطريقة مختلفة بطريقة أو بأخرى؟ كما هو الحال أيضًا لا تحصل على eysable_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.....
هل كانت مفيدة؟

المحلول

لقد حصلت على فكرة استخدام accounts_nested_attributes_for لأن هذا ما قد أفعله إذا لم يكن جمعية متعددة الأشكال ولكن نموذجًا آخر كنت أرمي سمات في .. وفويلا ، لقد نجحت.

  has_many :photos, :as => :imageable, :dependent => :destroy
  accepts_nested_attributes_for :photos
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top