2011-08-18 153 views
6

我很新的軌道,似乎有問題與回形針寶石。我安裝了gem,它在開發(localhost:3000)中運行良好,但是當我在heroku服務器上運行它時,出於某種原因它不想附加文件,並且應用程序中斷(錯誤500頁)。paperclip在開發中工作,但不在生產中工作?

下面是我跑過的過程...我將文件推送到heroku,heroku運行rake db:migrate(添加回形針遷移),然後運行heroku restart(重新啓動應用程序,並進行新的遷移)。這似乎沒有幫助。

這裏是我有回形針代碼:

user.rb型號:

has_attached_file :avatar, 
        :styles => {:small => "70x70>"}, 
        :url => "https://stackoverflow.com/users/:attachment/:id/:style/:basename.:extension", 
        :path => ":rails_root/public/users/:attachment/:id/:style/:basename.:extension" 
    validates_attachment_size :avatar, :less_than => 500.kilobytes 
    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png'] 

edit_form.html.haml觀點:

= form_for (@user || User.new), :html => { :multipart => true } do |f| 
    ...  
    .profile_picture.text_field 
    = image_tag current_profile.avatar.url(:small) 
    %br 
    = f.file_field :avatar 

再次,由於某種原因,在開發中運行良好,但在生產中出現故障。任何指針將不勝感激......我似乎不能解決這個問題,這是非常令人沮喪的。非常感謝您的時間和任何幫助!

回答

3

在您的模型中。

has_attached_file :picture, 
        :styles => {:large => "275x450>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "appname/:attachment/:style/:id.:extension" 

在s3.yml在您的配置目錄:

development: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

    production: 
     bucket: bucketname 
     access_key_id: key 
     secret_access_key: key 

然後去註冊一個水桶在亞馬遜S3:http://aws.amazon.com/s3/

+0

非常感謝你爲此......我一定會去做那件事。謝謝! –

1

您可能會遇到一些問題。但是,首先是你不能在Heroku上寫入文件系統。你將不得不實現一個不同的存儲機制,比如s3。您可以在此閱讀有關此限制的信息:http://devcenter.heroku.com/articles/read-only-filesystem

+0

非常感謝這個,傑克!我真的很感激它......我不知道我無法上傳到Heroku,但回想起來它完全有意義。非常感謝你,隊友! –

相關問題