【发布时间】:2013-08-10 03:04:00
【问题描述】:
我有一个本地 gem,我可以从脚本执行,显示在我的 Gemfile.lock 中,并在 Rails 控制台中返回 true,并显示“Gem.available?(”")。
但是,当我尝试 require 这个 gem 以便通过 rails 控制台(或 rake 任务或控制器)调用依赖它的脚本时,我得到“`require': cannot load such file -- ”。
RubyGems 环境:
- RUBYGEMS VERSION: 1.8.25
- RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/www-data/.rvm/gems/ruby-1.9.3-p385
- RUBY EXECUTABLE: /home/www-data/.rvm/rubies/ruby-1.9.3-p385/bin/ruby
- EXECUTABLE DIRECTORY: /home/www-data/.rvm/gems/ruby-1.9.3-p385/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/www-data/.rvm/gems/ruby-1.9.3-p385
- /home/www-data/.rvm/gems/ruby-1.9.3-p385@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org
irb:
$ irb
1.9.3-p385 :001 > require '<gem name>'
=> true
控制台:
RAILS_ENV=production rails console
Loading production environment (Rails 3.2.3)
1.9.3-p385 :001 > require '<gem name>'
LoadError: cannot load such file -- <gem name>
控制台是否在单独的环境中运行? %x( which ruby ) 会拒绝.. gem 也出现在我的 gem 列表中,用于控制台中的 bundle、Gemfile.lock 和 %( gem list )。
【问题讨论】:
-
您需要的内容并不总是与 Gem 名称相同:stackoverflow.com/questions/132867/… Gem 的文档应该告诉您如何需要它。
-
就是这种情况。我在脚本顶部使用 require '' ,该脚本使用相同的 gem 运行良好。 Rails 中的某些东西没有看到此 gem 已安装。我什至无法使用 %x(
) 执行该工作脚本。 -
gem 是否在你的 Gemfile 中的生产组中定义?
-
否定的,先生。它位于 Gemfile 的任何组之外的底部。
标签: ruby-on-rails gem