我收到“Paperclip :: Errors :: NotIdentifiedByImageMagickError”错误。为了解决这个问题,我将行Paperclip.options[:command_path] = '/usr/local/bin'
添加到了我的development.rb文件中。但是我也遇到了“图像的内容不是他们报道的内容”,我之前用Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin'
问题是,在我的development.rb文件中有两行后,一行会覆盖另一行,这样如果'/usr/local/bin'
的行是第一行,我将收到“Paperclip :: Errors :: NotIdentifiedByImageMagickError“错误,如果'C:\Program Files (x86)\GnuWin32\bin
是第一个,我将收到”图像的内容不是他们报告的内容“错误。
在我的user.rb中,我有以下内容:
has_attached_file :avatar,
:path => ":rails_root/public/system/:attachment/:id/:style/:filename",
:url => "/system/:attachment/:id/:style/:filename",
:styles => {:small => "150x150>"}
do_not_validate_attachment_file_type :avatar
如果我不包含样式,并且从development.rb文件中删除'/usr/local/bin'
行,则上传图像效果很好。
我已尝试在https://github.com/thoughtbot/paperclip上的以下说明通过编辑PATH变量而不需要'C:\Program Files (x86)\GnuWin32\bin
行,但这不起作用。
答案 0 :(得分:0)
<强>的file.exe 强>
问题似乎是您无法访问file.exe
。
file.exe
允许Paperclip / ImageMagick识别您上传的附件。对于文件类型(validates_attachment :attachment, content_type ...
)进行验证非常重要。
当您使用Paperclip / Imagemagick时,您必须确保Ruby可以访问file
。为此,我在Paperclip中写了docs,因为我有同样的问题:
由于您已经安装了file
,因此需要让Ruby可以访问它。有两种方法可以做到这一点;将其添加到PATH
系统var,或在devleopment.rb
中明确定义:
<强> PATH 强>
- 点击“开始”
- 在“计算机”上,右键单击并选择“属性”
- 在“属性”中,选择“高级系统设置”
- 单击“环境变量”按钮
- 找到“PATH”var - 在最后,添加新安装的
file.exe
的路径(通常为C:\Program Files (x86)\GnuWin32\bin
)- 重新启动已打开的所有CMD外壳看看它是否有效
醇>
使用上述 not 需要development.rb
中的任何定义。
-
<强> development.rb 强>
如果您想明确定义路径(如果不使用“PATH”方法,则再次 ),您可以将以下内容添加到development.rb
:
Paperclip.options[:command_path] = 'C:\Program Files (x86)\GnuWin32\bin'
对于Linux, /usr/local/bin
仅 ;您只需要定义command_path
一次。
<强>更新强>
以下内容使系统正常运行:
rmagick
gem(gem install rmagick --platform=ruby -- '--with-opt-dir="..."'
)PATH
var(而不是仅用户变量):
3.在使用Rails进行测试之前,我们测试了file
和imagemagick
一旦两者都工作,我们用Rails&amp; amp;它起作用了