S3に画像をアップロードするために、レール(3.2.13)で宝石のペーパークリップ(3.5.1)を使用しています。サイズを変更する必要があるため、imagemagick(6.8.6-3:) があり、OS X 10.8 を使用しています。
S3 に画像をアップロードできたので、has_attached_files のスタイルに :thumb と :medium のサイズを追加することにしました。テスト画像のコンソールから動作していますが、同じ画像をアップロードしてコントローラーに保存しようとすると動作しません。次のエラーが表示されます。
パラメータ: {"authenticity_token"=>"G15ab7cv9a7N8YT2gMuRSV+DqzNIEDK5/M+Cno/XLbE=", "qqfile"=>"test.jpg", "locale"=>"en"} ユーザー負荷 (0.3ms) SELECT "users ".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 Command :: file -b --mime './app/assets/images/test.jpg' Command :: identify -format '%wx %h,%[exif:orientation]' '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg[0]' コマンド :: identify -format %m '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn /T/test20130814-88788-1kazksg.jpg[0]' Command :: identify -format %m '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg[0]' Command :: identify -フォーマット %m '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg[0]' コマンド :: convert '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg] auto-orient -resize "100x100>" '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg20130814-88788-6efk1m' 1777 ミリ秒で 500 内部サーバー エラーを完了
NoMethodError (nil:NilClass の未定義メソッド `gsub'):
したがって、次の行でクラッシュします。
@document.original = uploaded_file
しかし、Document.rbにこれがある場合のみ:
has_attached_file :original, :styles => {:thumb => "100x100>",:small => "150x150>", :medium => "400x400"}
私が離れる:styles = {}
と、すべてが機能し、コンソールからも機能するので、混乱します。OS X で imagemagick のパーミッションが設定されている可能性があると思います。