2011-08-18 11 views
6

私はレールが新しく、ペーパークリップの宝石に問題があるようです。私は宝石をインストールし、それは開発(localhost:3000)でうまく動作しますが、私はherokuサーバーでそれを実行しているときに何らかの理由でファイルを添付したくないので、アプリケーションが壊れます(エラー500ページ)。paperclipは開発中ですが、実際には生産中ではありませんか?

私はherokuにファイルをプッシュし、herokuはrake db:migrate(paperclipの移行を追加)を実行し、herokuを再起動して新しい移行でアプリケーションを再起動しました。これは助けにならなかった。ここで

私はクリップを持っているコードは次のとおりです。

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

お使いのモデルでは、

あなたのconfigディレクトリ内s3.ymlで
has_attached_file :picture, 
        :styles => {:large => "275x450>"}, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 
        :path => "appname/:attachment/:style/:id.:extension" 

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にアップロードすることができなかったことを知らなかったが、それは振り返って完全に意味をなさない。どうもありがとうございました!! –

関連する問題