2009-11-06 11 views
7

Quando eseguo un'applicazione Rails, trova tutte le gemme installate correttamente.Impossibile trovare gem in irb: "NameError: Gemma costante non inizializzata da (irb)"

Questa è la prima volta che ho provato a chiamare alcune gemme dall'interno di irb e non sono riuscito a trovarle.

blocke:~$ irb 
irb(main):001:0> require 'rubygems' 
=> true 
irb(main):002:0> require 'rails' 
LoadError: no such file to load -- rails 
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
from (irb):2 
irb(main):003:0> 

Quando eseguo "ambiente gioiello" questo è quello che ottengo:

blocke:~$ gem environment 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.5 
    - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] 
    - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8 
    - RUBY EXECUTABLE: /usr/bin/ruby1.8 
    - EXECUTABLE DIRECTORY: /usr/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /usr/lib/ruby/gems/1.8 
    - /home/blocke/.gem/ruby/1.8 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "gem" => "--no-ri --no-rdoc" 
    - :sources => ["http://gemcutter.org", "http://gems.rubyforge.org/", "http://gems.github.com"] 
    - REMOTE SOURCES: 
    - http://gemcutter.org 
    - http://gems.rubyforge.org/ 
    - http://gems.github.com 

Secondo IRB, il percorso gemma è lo stesso, tranne in ordine inverso:

blocke:~$ irb 
irb(main):001:0> require 'rubygems' 
=> true 
irb(main):002:0> Gem.path 
=> ["/home/blocke/.gem/ruby/1.8", "/usr/lib/ruby/gems/1.8"] 

risposta

13

Non funziona perché non riesce a trovare il file 'rails.rb' (penso che non ci siano file simili in rails gem).

È possibile richiedere specifica componente rotaie, come 'ActiveRecord':

require 'rubygems' 
require 'activerecord' 

Oppure utilizzare il comando 'gioiello', in questo modo:

require 'rubygems' 
gem 'rails' 
+1

con le versioni più recenti di Rubino non sarà necessario 'richiedono 'rubini' – ScottJShea

Problemi correlati