0

Rails アプリで画像のアップロードを処理するためにペーパークリップを使用しています。ファイルストレージを使用して、開発環境でローカルに実行すると、すべて正常に動作します。

現在、S3 を使用してこれを機能させようとしています (アプリが Heroku で実行されるため)。バケットをセットアップし、https ://devcenter.heroku.com/articles/paperclip-s3 の指示に従って、development.rb と production.rb に適切なパラメーターを設定しました。

サーバーを起動すると、次のエラーが表示されます。

/Users/ganzogo/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.13/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `paperclip' for #<Rails::Application::Configuration:0x007fcb8b952000> (NoMethodError)
  from /Users/ganzogo/Documents/acknowledgement/true-rails/config/environments/development.rb:41:in `block in <top (required)>'

そして、クラッシュします。

エラーで参照されている行は次のとおりです。

config.paperclip.defaults = {
  :storage => :s3,
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET_NAME'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }
}

Heroku で実行しようとすると、まったく同じエラーが発生します。誰かがこれを経験し、私が見逃したものを知っていますか?

4

2 に答える 2

3

構成ブロックにタイプミスがあるようです。に変更config.paperclip.defaults = {...}してみてくださいconfig.paperclip_defaults = {...}。これで問題が解決するはずです。

于 2013-10-28T11:14:56.453 に答える
0

ライブアプリの1つでこれを機能させました

違いは、資格情報をモデル自体に入れる必要があることです。ここに私たちが持っているものがあります:


#app/models/image.rb
#Image Upload 
        Paperclip.options[:command_path] = 'C:\RailsInstaller\ImageMagick'
        has_attached_file :image,
                :styles => { :medium => "x300", :thumb => "x100" },
                :default_url => "*******",
                :storage => :s3,
                :bucket => '******',
                :s3_credentials => S3_CREDENTIALS


#app/config/application.rb
config.paperclip_defaults = {
            :storage => :s3,
            :s3_host_name => 's3-eu-west-1.amazonaws.com'
    }

Heroku では、さまざまな環境変数を構成設定に追加する必要があります。

于 2013-10-28T10:12:28.850 に答える