2013-04-29 1 views
10

С тех пор как мы обновились до Rails 3.2.13, нам не удалось запустить консоль geku rails. Сервер работает нормально, но при попытке запустить консоль, он дает следующее сообщение об ошибке:Rails 3: неинициализированная константа IRB :: ReadlineInputMethod :: Readline (NameError) в Heroku

Loading production environment (Rails 3.2.13) 
/app/vendor/bundle/ruby/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:212:in `const_missing_from_s3_library': uninitialized constant IRB::ReadlineInputMethod::Readline (NameError) 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/input-method.rb:113:in `gets' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:273:in `signal_status' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `call' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `buf_input' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/slex.rb:75:in `match' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in `token' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in `lex' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in `block (2 levels) in each_top_level_statement' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:155:in `eval_input' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:70:in `block in start' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:69:in `catch' 
    from /app/vendor/ruby-1.9.3/lib/ruby/1.9.1/irb.rb:69:in `start' 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start' 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start' 
    from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

Что происходит? Благодаря!

ответ

48

Только что испытал это сам. Как оказалось, камень rb-readline столкнулся с версией, которая вызывает консоль рельсов, а другие - потерпеть неудачу. Попробуйте заблокировать его до '~> 0.4.2'.

gem 'rb-readline', '~> 0.4.2' 
+0

Кажется, этот вопрос: https://github.com/luislavena/rb-readline/issues/84 –

+4

Тем не менее проблема с Rails 4.0.0 – nimrodm

+1

Действительно, эта проблема возникает в 4.0.0, но это решение по-прежнему работает как шарм. Благодарю. – toniedzwiedz