Ошибка сервера Rails3 и комплектующего:неинициализированный связыватель констант (NameError)

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

Вопрос

Я просто устанавливаю rails 3 и все gems, которые ему нужны, но когда я пытаюсь запустить сервер, он сообщает о проблеме в сценарии загрузки.

[rap-kasta@acerAspire testR3]$ script/rails server  
/home/rap-kasta/tmp/testR3/config/boot.rb:7:in `rescue in <top (required)>': uninitialized constant Bundler (NameError)  
        from /home/rap-kasta/tmp/testR3/config/boot.rb:2:in `<top (required)>'  
        from script/rails:9:in `require'  
        from script/rails:9:in `<main>  

Итак, я попытался переустановить Bundler, установить "предварительную" версию (но на самом деле у нее номер версии ниже, чем я устанавливаю с помощью gem install bundler

Теперь в системе есть следующие драгоценные камни:

abstract (1.0.0)
actionmailer (3.0.0.beta, 2.3.5, 2.3.4)
actionpack (3.0.0.beta, 2.3.5, 2.3.4)
activemodel (3.0.0.beta)
activerecord (3.0.0.beta, 2.3.5, 2.3.4)
activeresource (3.0.0.beta, 2.3.5, 2.3.4)
activesupport (3.0.0.beta, 2.3.5, 2.3.4)
arel (0.2.1, 0.2.pre)
builder (2.1.2)
bundler (0.9.5)
erubis (2.6.5)
fxri (0.3.7)
fxruby (1.6.20)
i18n (0.3.3)
jemini (2010.1.24, 2010.1.5)
mail (2.1.2)
memcache-client (1.7.8)
mime-types (1.16)
mysql (2.8.1)
nifty-generators (0.3.2, 0.3.0)
rack (1.1.0, 1.0.1, 1.0.0)
rack-mount (0.5.1, 0.4.0)
rack-openid (0.2.3, 0.2.2)
rack-test (0.5.3)
rails (3.0.0.beta, 2.3.5, 2.3.4)
railties (3.0.0.beta)
rake (0.8.7)
rawr (1.3.8)
RedCloth (4.2.2)
ruby-mysql (3.0.2)
ruby-openid (2.1.7)
rubygems-update (1.3.5)
rubyzip (0.9.4, 0.9.1)
rubyzip2 (2.0.1)
sqlite3-ruby (1.2.5)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.13.2, 0.13.1)
tzinfo (0.3.16)

Кроме того, возникает такая же ошибка с rails console и аналогично с bundle check:

[rap-kasta@acerAspire testR3]$ bundle check
/usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.5/bin/bundle:12:in `rescue in <top (required)>': uninitialized constant Bundler::BundlerError (NameError)
        from /usr/lib/ruby/gems/1.9.1/gems/bundler-0.9.5/bin/bundle:10:in `<top (required)>'
        from /usr/bin/bundle:19:in `load'
        from /usr/bin/bundle:19:in `<main>'
Это было полезно?

Решение 3

Я думаю, это не ошибка в Bundler (или Rails), это ошибка (?!) в системе gems...Итак..У меня также есть gem 'rawr', у которого есть файл 'bundler.rb', и система gems загружает его вместо 'bundler / ../bundler.rb'.

Я удалил rawr, но теперь я не могу использовать jemini...Но теперь моя проблема решена.

Другие советы

это работает после добавления:

gem install bundler

и после добавления:

gem 'bundler'

в строке 2 в config/boot.rb (сразу после require 'rubygems')

Пожалуйста, подтвердите пути к командам ruby и rake.

$ which ruby
/usr/bin/ruby
$ which rake
/usr/local/bin/rake

Я получил ту же ошибку.В моем случае я установил Rails с помощью /usr/bin / ruby, но rake использует /usr/local/bin/ruby.Вот почему я получил ошибку, связанную с Bundler.

Я обновил свои rubygems до 1.5.0, но мне нужно было также установить ruby-1.9.2-p180 в качестве версии ruby по умолчанию в RVM.Это сделало свое дело за меня.

У меня была проблема на Mac, потому что несколько драгоценных камней (включая bundler) были установлены в "/opt/local /lib/ ruby / gems / 1.8", который по умолчанию загружается RubyGems в irb, но не в rake.

Вот как я это исправил, возможно, это не идеально, но, по крайней мере, это работает:

  1. Найдите нужный вам путь (ы), перейдя в ирб и делать

    require 'rubygems'
    Gem.path
    => ["/Users/joel/.gem/ruby/1.8", "/opt/local/lib/ruby/gems/1.8"]
    

    Это пути по умолчанию, так что, если у вас все работает в irb, они хороши.

  2. Теперь, в загрузочный.rb, добавить (используйте свои пути, если они, конечно, отличаются)

    Gem.path.push "/opt/local/lib/ruby/gems/1.8"
    Gem::Specification.find_by_name('bundler').activate
    

    Сразу после

    require 'rubygems'
    

Надеюсь, это решит проблему для вас, по крайней мере, я рад, что исправил это для себя, чтобы я мог наконец использовать Rails 3 !

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top