RMagick + Rails + Heroku?

16

我正在尝试在我的应用程序中安装rmagick,并使其在Heroku上正常工作。


2
你目前做了什么,还有什么没有正常工作? - yfeldblum
6个回答

21

对于Rails3,您需要添加以下规范:

gem "rmagick","2.12.0",:require => 'RMagick'

注意:require区分大小写


5
赞同创意方法,快速解释“区分大小写”的含义。 - lala

8

好的,作为参考,这里列出需要完成的步骤。

在您的 .gems 文件中,需要包含以下内容:

rmagick

然后在你的config/environment.rb文件中需要:

config.gem "rmagick",
:lib => "RMagick" 

因为Heroku已经预先安装了它,所以这就是解决方法。


你好,我已经在config/environnement.rb文件中添加了先前的行,但是当我运行rails s时它不起作用。 - Luc
Luc,这是因为Heroku的服务器已经安装了rmagick。(当然,这是因为正确安装它很麻烦。)运行“rails s”使用您自己的本地gems,这确实需要您自己设置imagemagick和rmagick。 - Sanarothe

7

我曾经按照Capps的回答尝试了以下操作。

gem "rmagick", "2.12.0", :require => 'RMagick'

然后我在任何使用rmagick的文件中添加了require语句,这解决了我的问题。

require 'RMagick'

这在运行 Rails 3.1 的 Heroku cedar stack 上可以正常工作。


4
这取决于你在Heroku上使用哪个堆栈。默认的Aspen堆栈包含许多预装的gems。出于兼容性考虑,更新的Bamboo堆栈没有预安装的gems。最好在.gems清单或新的bundler样式Gemfile中定义您的gem依赖关系。
更多信息: 堆栈:http://docs.heroku.com/stack Gems:http://docs.heroku.com/gems

1
你只需要在任何类中添加一个 require 语句即可。它是区分大小写的!
mike@sleepycat:~/projects/myapp$ heroku console --app myapp
Ruby console for myapp.heroku.com
>> require 'RMagick'
=> []
>> include Magick
=> Object

我在我的.gems文件或其他地方都没有这个,但是在我的控制台中却有它,所以看起来它只是默认存在的。


1

我知道这篇文章已经相当古老,但我遇到了同样的问题。

gem 'rmagick', '2.16.0',:require => 'rmagick'

对我有用。根据我的Heroku日志,RMagick已被弃用,推荐使用小写的rmagick

希望这能帮助未来的谷歌搜索者。


这是哪个版本的Heroku Stack? - jpw
我想说当时我在Heroku-16上运行Rails 5.0.2,使用Ruby 2.3.5,如果我没记错的话。 - cdouble.bhuck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接