0

Fogを使用してS3にアップロードしています。アップロードは開発では正常に機能しますが、本番環境では次のエラーが発生します。

TypeError (can't convert nil into String):
  app/controllers/pictures_controller.rb:29:in `create'

(その行は画像が保存される場所です)。これでスタックトレースは終了です。

コンソールに移動して実行すると、次のようになります。

p = Picture.new(image: "~/rails_apps/my_app/current/app/assets/images/rails.png")

それは私に本番環境で次のことを与えます:

CarrierWave::FormNotMultipart: CarrierWave::FormNotMultipart

...しかし、開発には抗議しません。おそらくそれが手がかりです。

アップロードが本番環境で機能しない理由はありますか?

これが私のcarrierwave.rb初期化子です:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',                                         # required
    :aws_access_key_id      => ENV['AWS_ACCESS_KEY_ID'],                        # required
    :aws_secret_access_key  => ENV['AWS_SECRET_ACCESS_KEY']#,    # required
  }
  if Rails.env.production?
    config.fog_directory  = 'mydir'                     # required
  else
    config.fog_directory  = 'mydir-development'                     # required
  end
  config.fog_public     = true                                   # optional, defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}
end
4

1 に答える 1