我已经尝试在我的应用程序中使用红宝石单位https://github.com/olbrich/ruby-units和炼金术士https://github.com/halogenandtoast/alchemist gems 进行转换。即使在生产模式下,一切都可以在本地完美运行。
然而,在我的 Linode 上,即使炼金术士 gem 在生产 rails 控制台中完美运行,转换也会引发异常。
在我的 rails 应用程序中使用这些 ruby gems 是否需要额外的步骤或配置?我需要调用require 'alchemist'
初始化程序吗?纯 ruby gem 是如何融入 Rails 的,它们是如何配置的?
这是我的 Gemfile 中的一行:
gem 'alchemist'
这是生产控制台输出(有效):
deployer@li60-239:~/apps/saute/current$ bundle exec rails c production
Loading production environment (Rails 3.2.2)
irb(main):001:0> Alchemist
=> Alchemist
irb(main):002:0> 1.tablespoon
=> 1.0
irb(main):003:0> 1.tablespoon.class
=> Alchemist::NumericConversion
但是在我的应用程序中,我的日志中出现异常:
Exception in base quantity method: undefined method `tablespoon' for #<BigDecimal:beb7548,'0.1E1',4(8)>
Quantity: 1.0
更新:
我创建了config/initializers/alchemist.rb
:
require 'alchemist'
这在本地开发中没有造成任何问题。一切仍然有效。但是后来我在生产中遇到了以下错误:
/home/deployer/apps/saute/shared/bundle/ruby/1.9.1/gems/activesupport- 3.2.1/lib/active_support/dependencies.rb:251:in `require': 没有要加载的文件——alchemist (加载错误)
我该如何配置这个!