我剛剛開始使用Rails應用程序中的MiniMagick,並且遇到了一個我無法在任何地方找到引用的問題。我的超簡單的測試情況如下:MiniMagick shell_api爲空?
MiniMagick.configure do |config|
config.cli = :graphicsmagick
end
image = MiniMagick::Image.open("Sunset.png")
image.resize "100x100"
image.format "png"
image.write('composite.png')
導致
NoMethodError: undefined method `gsub' for nil:NilClass
/Users/me/.rvm/gems/[email protected]/gems/mini_magick-4.3.0/lib/mini_magick/shell.rb:32:in `execute'
的錯誤是由image.resize
調用拋出(雖然同樣的錯誤是由image.valid?
拋出,image.blank?
,無疑他人),以及在MiniMagick::Shell
類引發錯誤的代碼行是:
send("execute_#{MiniMagick.shell_api.gsub("-", "_")}", *command)
導致我的結論那MiniMagick.shell_api
不應該是零。
我在
- JRuby的1.7.18
- 的Rails 3.2.21
- 的Mac OSX 10.9.5
- GraphicsMagick工具1.3.21 2015年2月28日Q8
我也看到了同樣的錯誤使用ImageMagick 6.9.1-1 Q16 x86_64 2015-04-15。我可以在命令行上使用GraphicsMagick來調整圖像的大小,而不會出現問題。我甚至在我的Rails應用程序之外編寫了一個簡單的Ruby類,並且相同的代碼在其中正常工作!
有什麼想法?