نموذج مفقود مطلوب ATTR_ACCESSER لـ "photo_file_name" عند التحميل باستخدام paperclip و s3 على Heroku

StackOverflow https://stackoverflow.com/questions/3580592

سؤال

كان إعداد Paperclip مع S3 في بيئة Linux Dev بمثابة مفاجئة - كل شيء يعمل خارج الصندوق. ومع ذلك ، لا يمكنني تشغيله على هيروكو.

عندما أحاول إجراء تحميل ، يظهر السجل:

Processing ItemsController#create (for 72.177.97.9 at 2010-08-26 16:35:14) [POST]  
  Parameters: {"commit"=>"Create", "authenticity_token"=>"0Hy3qvQBHE1gvFVaq32HMy2ZIopelV0BHbrSeHkO1Qw=", "item"=>{"photo"=>#<File:/home/slugs/270862_4aa601b_4b6f/mnt/tmp/RackMultipart20100826-6286-1256pvc-0>, "price"=>"342", "name"=>"a new item", "description"=>"a new item", "sold"=>"0"}}

Paperclip::PaperclipError (Item model missing required attr_accessor for 'photo_file_name'):

لقد عثرت على مدونة واحدة أشارت إلى هذا الخطأ ، وقال لإضافة هذا إلى النموذج الخاص بي:

attr_accessor :photo_file_name
attr_accessor :photo_content_type
attr_accessor :photo_file_size
attr_accessor :photo_updated_at

هذا يجعل بالفعل النموذج المفقود المطلوب ATTR_ACCESSSER لـ "photo_file_name" خطأ يختفي ، لكنه لا يزال لا يعمل. نرى سؤالي الآخر للتفاصيل. نظرًا لأنني اكتشفت أنه مع إضافة خطوط ATTR_ACCESSSER إلى النموذج الخاص بي ، تفشل التحميلات حتى على نظام DEV الخاص بي ، وأظن أن هذا ليس هو الإجابة الصحيحة.

هل كانت مفيدة؟

المحلول

وجدت المشكلة: اللازمة لتحديث قاعدة البيانات.

Heroku Run Rake: DB: ترحيل

إعادة تشغيل Heroku

لقد فعلت ما اعتقدت أنه كان من الممكن أن أنجز نفس الشيء بالفعل:

Heroku Rake DB: Schema: Load

ولكن ربما لا ينجح هذا أو حدث خطأ ما في هذه العملية.

نصائح أخرى

يحدث خطأ مثل هذا إذا قمت بإنشاء نوع عمود خاطئ في الترحيل. عندما تحدد ترحيل الجدول الجديد لـ paperclip ، تحتاج إلى تحديد t.attachment :name بدلا من t.string :name. أو add_attachment :table, :name عندما تضيف عمودًا جديدًا لقرص الورق في جدول موجود. والآن لا تحتاج إلى إضافة هذه السمات في attr_accessor في النموذج.

حسنًا ، يبدو أن هذه الرسالة هي أن الأعمدة مفقودة. حاول إنشاء ترحيل إنشاء الأعمدة:

class AddPhotoToEvent < ActiveRecord::Migration
  def change
    add_column :events, :photo_file_name,    :string
    add_column :events, :photo_content_type, :string
    add_column :events, :photo_file_size,    :integer
    add_column :events, :photo_updated_at,   :datetime
  end

نهاية

هذا العمل بالنسبة لي ، هنا لدي أحداث طاولة مع الصورة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top