2010-08-27 6 views
10

मेरे लिनक्स देव पर्यावरण में एस 3 के साथ पेपरक्लिप सेट करना एक स्नैप था - सबकुछ बॉक्स से बाहर काम करता है। हालांकि, मैं इसे हेरोकू पर काम नहीं कर सकता।मॉडल गायब होने के लिए 'photo_file_name' के लिए attr_accessor की आवश्यकता होती है जब उसके पेपरक्लिप और एस 3 के साथ हेरोकू पर अपलोड किया जाता है

जब मैं एक अपलोड करने की कोशिश, लॉग दिखाता है:

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 

यह वास्तव में मॉडल अनुपलब्ध है 'photo_file_name' के लिए आवश्यक attr_accessor त्रुटि दूर हो जाती है, लेकिन यह अभी भी काम नहीं करती है। विवरण के लिए my other question देखें। जैसा कि मैंने पाया है कि मेरे मॉडल में attr_accessor लाइनों के साथ अपलोड मेरे देव सिस्टम पर भी असफल हो जाते हैं, मुझे संदेह है कि यह सही जवाब नहीं है।

उत्तर

30

समस्या मिली: डेटाबेस को अद्यतन करने के लिए आवश्यक।

Heroku रन रेक: db: विस्थापित

Heroku पुनः आरंभ

मैं किया था कि मैं क्या सोचा था कि एक ही बात को पहले से ही पूरा किया है जाएगा:

Heroku रेक db: स्कीमा : लोड

लेकिन शायद टी टोपी काम नहीं करती है या प्रक्रिया में कुछ गलत हो गया है।

+0

आप परेशानी में भाग सकते हैं। 'heroku run rake: db: माइग्रेट करें' यदि आप करते हैं, तो इसके बजाए इसे चलाएं 'heroku run rake db: माइग्रेट करें' फिर 'heroku restart' – kearney927

+0

इस लाइन का उपयोग न करें: heroku rake db: schema: load। यह टेबल से आपके सभी डेटा हटा देगा! यदि आप इसे प्राप्त करना चाहते हैं तो बैकअप लें! – EM923

0

अच्छा, यह संदेश ऐसा प्रतीत होता है क्योंकि कॉलम गायब है। कॉलम बनाने माइग्रेशन बनाने का प्रयास करें:

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 

अंत

मेरे लिए यह काम करते हैं, यहाँ मैं तस्वीर के साथ एक मेज घटना होती है, तो आप माइग्रेशन में गलत स्तंभ प्रकार बनाने

3

त्रुटि यह पसंद है। जब आप पेपरक्लिप के लिए नई तालिका माइग्रेशन को परिभाषित करते हैं, तो आपको t.attachment :namet.string :name के इंस्टॉलेशन को निर्दिष्ट करने की आवश्यकता होती है। या add_attachment :table, :name जब आप मौजूदा तालिका में नया पेपरक्लिप कॉलम जोड़ते हैं। और अब आपको मॉडल में attr_accessor में इन विशेषताओं को जोड़ने की आवश्यकता नहीं है।

संबंधित मुद्दे

 संबंधित मुद्दे