2011-04-12 70 views
3

当我尝试在rails控制台中需要一些gems时,出现'没有这样的文件'错误。奇怪的是,在irb中需要它们时,我不会得到这个错误。LoadError没有这样的文件,当试图加载gems在rails时

在此先感谢。

 $ irb 
irb(main):001:0> $LOAD_PATH 
=> ["/usr/local/lib/site_ruby/1.9.1", "/usr/local/lib/site_ruby/1.9.1/x86_64-linux", "/usr/local/lib/site_ruby", "/usr/lib/ruby/vendor_ruby/1.9.1", "/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux", "/usr/lib/ruby/vendor_ruby", "/usr/lib/ruby/1.9.1", "/usr/lib/ruby/1.9.1/x86_64-linux"] 
     irb(main):002:0> require 'rubygems' 
     => true 
     irb(main):003:0> require 'image_science' 
     => true 
     irb(main):004:0> require 'mini_magick' 
     => true 
     irb(main):005:0> 
     $ rails console 
     Loading development environment (Rails 3.0.5) 
     irb(main):001:0> require 'rubygems' 
     => nil 
     irb(main):002:0> require 'image_science' 
     LoadError: no such file to load -- image_science 
      from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require' 
    ... 
      from script/rails:6:in `require' 
      from script/rails:6:in `<main>' 
     irb(main):003:0> require 'mini_magick' 
     LoadError: no such file to load -- mini_magick 
      from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require' 
    ... 
      from script/rails:6:in `require' 
      from script/rails:6:in `<main>' 
     irb(main):004:0> $LOAD_PATH 
     => ["/var/lib/gems/1.9.1/gems/haml-3.0.25/vendor/fssm/lib", "/home/username/appname/lib", "/home/username/appname/vendor", "/home/username/appname/app/models", "/home/username/appname/app/mailers", "/home/username/appname/app/helpers", "/home/username/appname/app/controllers", "/var/lib/gems/1.9.1/gems/rails-3.0.5/lib", "/var/lib/gems/1.9.1/gems/railties-3.0.5/lib", "/var/lib/gems/1.9.1/gems/thor-0.14.6/lib", "/var/lib/gems/1.9.1/gems/pg-0.10.1/lib", "/var/lib/gems/1.9.1/gems/pg-0.10.1/ext", "/var/lib/gems/1.9.1/gems/oauth2-0.1.1/lib", "/var/lib/gems/1.9.1/gems/multi_json-0.0.5/lib", "/var/lib/gems/1.9.1/gems/haml-3.0.25/lib", "/var/lib/gems/1.9.1/gems/faraday-0.5.7/lib", "/var/lib/gems/1.9.1/gems/multipart-post-1.1.0/lib", "/var/lib/gems/1.9.1/gems/addressable-2.2.4/lib", "/var/lib/gems/1.9.1/gems/activeresource-3.0.5/lib", "/var/lib/gems/1.9.1/gems/activerecord-3.0.5/lib", "/var/lib/gems/1.9.1/gems/arel-2.0.9/lib", "/var/lib/gems/1.9.1/gems/actionmailer-3.0.5/lib", "/var/lib/gems/1.9.1/gems/mail-2.2.15/lib", "/var/lib/gems/1.9.1/gems/treetop-1.4.9/lib", "/var/lib/gems/1.9.1/gems/polyglot-0.3.1/lib", "/var/lib/gems/1.9.1/gems/mime-types-1.16/lib", "/var/lib/gems/1.9.1/gems/actionpack-3.0.5/lib", "/var/lib/gems/1.9.1/gems/tzinfo-0.3.24/lib", "/var/lib/gems/1.9.1/gems/rack-test-0.5.7/lib", "/var/lib/gems/1.9.1/gems/rack-mount-0.6.13/lib", "/var/lib/gems/1.9.1/gems/rack-1.2.1/lib", "/var/lib/gems/1.9.1/gems/erubis-2.6.6/lib", "/var/lib/gems/1.9.1/gems/activemodel-3.0.5/lib", "/var/lib/gems/1.9.1/gems/i18n-0.5.0/lib", "/var/lib/gems/1.9.1/gems/builder-2.1.2/lib", "/var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib", "/var/lib/gems/1.9.1/gems/abstract-1.0.0/lib", "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib", "/var/lib/gems/1.9.1/gems/bundler-1.0.10/lib", "/usr/local/lib/site_ruby/1.9.1", "/usr/local/lib/site_ruby/1.9.1/x86_64-linux", "/usr/local/lib/site_ruby", "/usr/lib/ruby/vendor_ruby/1.9.1", "/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux", "/usr/lib/ruby/vendor_ruby", "/usr/lib/ruby/1.9.1", "/usr/lib/ruby/1.9.1/x86_64-linux", "/var/lib/gems/1.9.1/gems/actionpack-3.0.5/lib/action_controller/vendor/html-scanner", "/var/lib/gems/1.9.1/gems/rack-mount-0.6.13/lib/rack/mount/vendor/multimap", "/var/lib/gems/1.9.1/gems/rack-mount-0.6.13/lib/rack/mount/vendor/regin"] 

的Gemfile:

source 'http://rubygems.org' 

gem 'rails', '3.0.5' 

gem 'pg' 
gem 'oauth2' 
gem 'haml' 
+0

你的'Gemfile'看起来像什么? – 2011-04-12 19:30:37

+0

@ andrew-marshall我编辑了这个问题来添加我的Gemfile – calicode 2011-04-12 20:07:03

回答

4

你不能要求在不在你的Gemfile Rails的宝石。您必须将它们包含在您的Gemfile中,或者在需要时指定该gem的完整路径。 require "/full/path/to/gem"

这是因为Bundler的工作原理和覆盖您现有的加载路径。如果您在Rails控制台中运行$LOAD_PATH,则会看到它与IRB中的显着不同。

+0

我也试过用Gemfile中的宝石。当我这样做时,当我运行“rails控制台”时会出现相同的错误信息。您还可以看到该控制台的$ LOAD_PATH是irb的超集。 – calicode 2011-04-12 20:22:41

+0

我也试过要求完整的路径,但现在它抱怨缺少依赖关系(已安装,只是不在它正在寻找的路径上) – calicode 2011-04-12 20:28:36

+0

你把'bundle install'放到你的Gemfile中后运行了吗? – 2011-04-12 20:28:51

相关问题