我在 rails(3.2.13) 中使用 gem 回形针 (3.5.1) 将图像上传到 S3。我需要调整它们的大小,所以我有 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]' 命令 :: identify -format %m '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg[0]' 命令 :: identify -格式 %m '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-88788-1kazksg.jpg[0]' 命令 :: convert '/var/folders/df/lhvn6g596fl5vmpwym6t04c80000gn/T/test20130814-80878'8-1kazg] 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 有权限的东西。