【问题标题】:RMagick + Rails + Heroku?RMagick + Rails + Heroku?
【发布时间】:2010-04-03 22:49:45
【问题描述】:

我想弄清楚如何在我的应用上安装 rmagick,然后让它在 Heroku 上运行?

【问题讨论】:

  • 到目前为止你做了什么,什么没用?

标签: ruby-on-rails heroku rmagick


【解决方案1】:

对于 Rails3,您必须添加此规范:

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

注意:require 是区分大小写的

【讨论】:

  • 赞成以创造性的方式快速理解区分大小写的含义。
【解决方案2】:

好的,下面是需要做的事情,以供将来参考。

在您需要的 .gems 文件中:

rmagick

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

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

因为它已经预装了 heroku - 这可以解决问题。

【讨论】:

  • 您好,我已经在 config/environnement.rb 中添加了前面几行,但是当我运行 rails s 时它不起作用。
  • Luc,关键是 Heroku 的服务器已经安装了 rmagick。 (当然,这是因为正确安装很痛苦。)运行“rails s”会使用您自己的本地 gem,这需要您自己设置 imagemagick 和 rmagick。
【解决方案3】:

一旦我从 capps 回答中执行了以下操作。

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

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

require 'RMagick'

这适用于 Heroku cedar stack running rails 3.1

【讨论】:

    【解决方案4】:

    这取决于您在 Heroku 上使用的堆栈。默认的 Aspen 堆栈包括许多预加载的 gem。出于兼容性原因,较新的 Bamboo 堆栈没有预装 gem。最好在 .gems 清单或新的捆绑器样式 Gemfile 中定义您的 gem 依赖项。

    更多信息:
    堆栈:http://docs.heroku.com/stack
    宝石:http://docs.heroku.com/gems

    【讨论】:

      【解决方案5】:

      你应该只需要在任何类中添加一个 require 语句。区分大小写!

      mike@sleepycat:~/projects/myapp$ heroku console --app myapp
      Ruby console for myapp.heroku.com
      >> require 'RMagick'
      => []
      >> include Magick
      => Object
      

      我的 .gems 文件或任何东西中都没有它,它在我的控制台中,所以它似乎默认就在那里。

      【讨论】:

        【解决方案6】:

        我知道这篇文章已经很老了,但我自己也遇到了这个问题。

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

        为我工作。根据我的 Heroku 日志,RMagick 已被弃用,取而代之的是 rmagick(全部小写)。

        希望这对未来的 Google 员工有所帮助。

        【讨论】:

        • 这是用于什么版本的 heroku 堆栈?
        • 我想说它是 Heroku-16,我当时在 Ruby 2.3.5 上运行 Rails 5.0.2,iirc。
        猜你喜欢
        • 1970-01-01
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        相关资源
        最近更新 更多