Ошибка запуска команды «консоль рельсов» в Rails 3.2.9

Я использую Rails 3.2.9 с ruby ​​1.9.3 (по умолчанию используется RVM). В корневом каталоге моего test_app, когда я выполнил команду «консоль rails» / «rails c», отображается следующая ошибка.

rails console
/home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `<top (required)>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in `each'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:66:in `block in require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in `each'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler/runtime.rb:55:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327@global/gems/bundler-1.2.3/lib/bundler.rb:128:in `require'
    from /home/local/rajesh.co/Rajesh/blog/config/application.rb:7:in `<top (required)>'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/railties-3.2.9/lib/rails/commands.rb:39:in `require'
    from /home/local/rajesh.co/.rvm/gems/ruby-1.9.3-p327/gems/railties-3.2.9/lib/rails/commands.rb:39:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Может ли кто-нибудь помочь мне решить эту проблему?


person Rajesh Omanakuttan    schedule 13.12.2012    source источник


Ответы (3)


Да, я получил ответ на свой вопрос.

Просто откройте файл «Gemfile» в корневом каталоге папки вашего приложения, а затем вставьте туда следующие строки.

gem 'execjs'

gem 'libv8'

gem 'therubyracer'

После вставки просто сохраните файл и выполните «обновление пакета» в командной строке.

После успешного завершения обновления пакета вы пытаетесь запустить «rails c» или «консоль рельсов», чтобы получить консоль рельсов. Оно работает!!

Спасибо.

person Rajesh Omanakuttan    schedule 13.12.2012

попробуй установить

gem 'therubyracer'

источник

ХТН

person sameera207    schedule 13.12.2012
comment
Ни за что!! Я установил гем «therubyracer» и гем «execjs» и сделал пакетное обновление. Он не работает, и снова появляется та же ошибка. - person Rajesh Omanakuttan; 13.12.2012
comment
Привет @Rajesh, похоже, вы используете здесь rvm, так вы уверены, что упаковываете драгоценные камни в правильный пакет rvm? - person sameera207; 13.12.2012
comment
Я не понимаю. Можете уточнить вопрос? - person Rajesh Omanakuttan; 13.12.2012
comment
Не могли бы вы указать, как нам нужно установить гем «therubyracer» в моем приложении? - person Rajesh Omanakuttan; 13.12.2012
comment
Привет, @Rajesh, проверь эту запись о rvm keepthingssimple. tumblr.com/post/11274588229/ - person sameera207; 13.12.2012

Установите следующие оба:

gem 'execjs'
gem 'therubyracer'
person VenkatK    schedule 13.12.2012
comment
Ни за что!! Я установил гем «therubyracer» и гем «execjs» и сделал пакетное обновление. Он не работает, и снова появляется та же ошибка. - person Rajesh Omanakuttan; 13.12.2012
comment
Я уже сделал это, и я упомянул об этом в комментарии выше. - person Rajesh Omanakuttan; 13.12.2012
comment
Я имею в виду, просто запустите bundle install - person VenkatK; 13.12.2012
comment
Не могли бы вы указать, как нам нужно установить гем «execjs» гем «therubyracer» в моем приложении? - person Rajesh Omanakuttan; 13.12.2012
comment
execjs дает вам возможность выполнять javascript, а therubyracer дает вам интерфейс от ruby. Оба являются взаимозависимыми. - person VenkatK; 13.12.2012