Ich kann keine Edelsteine ​​in irb finden:„Namensfehler:nicht initialisierter konstanter Gem von (irb)“

StackOverflow https://stackoverflow.com/questions/1689725

Frage

Wenn ich eine Rails-App ausführe, werden alle meine installierten Gems korrekt gefunden.

Dies ist das erste Mal, dass ich versucht habe, einige Edelsteine ​​aus irb heraus aufzurufen, aber es konnte sie nicht finden.

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> 

Wenn ich „Gem Environment“ ausführe, erhalte ich Folgendes:

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

Laut irb ist der Edelsteinpfad derselbe, außer in umgekehrter Reihenfolge:

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"]
War es hilfreich?

Lösung

Es funktioniert nicht, weil die Datei „rails.rb“ nicht gefunden werden kann (ich glaube, es gibt keine solche Datei in Rails Gem).

Sie können entweder eine bestimmte Rails-Komponente anfordern, z. B. „activerecord“:

require 'rubygems'
require 'activerecord'

Oder verwenden Sie den Befehl „gem“ wie folgt:

require 'rubygems'
gem 'rails'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top