Ich kann keine Edelsteine in irb finden:„Namensfehler:nicht initialisierter konstanter Gem von (irb)“
-
18-09-2019 - |
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"]
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