【发布时间】:2012-04-12 02:08:39
【问题描述】:
我的 Gemfile 中有以下声明
gem 'foo', :git => 'git@github.com:bar/foo.git'
在我运行 bundle install 后,它能够检索到以下文件夹下的 gem
$ ls ~/.rvm/gems/ruby-1.9.3-p0@samples/bundler/gems/foo-4dc3d7bf8271
但是在我的程序中使用 gem 并使用 require 'foo' 并运行它会引发以下问题。
custom_require.rb:36:in `require': 无法加载此类文件 -- foo (加载错误)
我该如何解决这个问题?
编辑
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/i686-linu
x
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby/1.9.1
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby/1.9.1/i686-li
nux
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/vendor_ruby
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/i686-linux
/home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/
custom_require.rb:36:in `require': cannot load such file -- foo (LoadError)
from /home/ec2-user/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.
9.1/rubygems/custom_require.rb:36:in `require'
【问题讨论】:
-
hrm,我通常不需要 gem,但我在上面看到的另一件事是 gem 名称后面应该跟一个版本号。 foo-1.3.4,仅仅是因为你的例子吗?
-
foo-4dc3d7bf8271 - 这是因为我分叉了一个项目并对其进行了一些更改,因此我试图直接从 github 使用这个 gem
-
在您的要求之前添加一行
puts $:(或使用Rails.logger.debug $:,如果它的Rails 应用程序)并检查您的gem 路径是否在列表中。还要检查,文件foo.rb是否位于其路径中,它的名称可能略有不同。 -
@Nash - 当我尝试运行我的示例 ruby 程序时,将上述错误添加为问题的一部分。
-
也许,您需要指定如何要求该 gem,例如:
gem 'dylansm-wirble', :require => 'wirble'
标签: ruby-on-rails gem gemfile faker