#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
Здравствуйте, я работаю с ruby on rails на компьютере с Windows 8, и мне сложно настроить ruby 2.1 на моей машине. когда я запускаю rails s, я получаю следующую ошибку:
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.2.0/lib/execjs/run
times.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://gi
thub.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUn
available)
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.2.0/l
ib/execjs.rb:5:in `<module:ExecJS>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/execjs-2.2.0/l
ib/execjs.rb:4:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.5.1
/lib/uglifier.rb:3:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/uglifier-2.5.1
/lib/uglifier.rb:3:in `<top (required)>'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:76:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:72:in `each'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:72:in `block in require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:61:in `each'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler/runtime.rb:61:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/bundler-1.6.3/
lib/bundler.rb:132:in `require'
from C:/HandCo-op/HandCo-op/config/application.rb:7:in `<top (required)>
'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands/commands_tasks.rb:79:in `require'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands/commands_tasks.rb:79:in `block in server'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands/commands_tasks.rb:76:in `tap'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands/commands_tasks.rb:76:in `server'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.1.2
.rc1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Я думаю, это потому, что мне нужен ruby 2.1, а установленная версия 2.0. Кто-нибудь знает, что я должен сделать, чтобы исправить эти ошибки? Большое спасибо всем, у кого есть идея о том, почему я не могу запустить rails s.
Комментарии:
1. Подсказка, трассировки стека обычно дают ключ к пониманию причины или, по крайней мере, в чем проблема. Хотя первая строка довольно загадочная, следующая указывает на github.com/sstephenson/execjs для получения дополнительной информации.
Ответ №1:
Забавно, я только что инициализировал новый проект rails 4 с ruby 2.1, и когда я забыл обновить Gemfile
, я получил точное сообщение об ошибке несколько минут назад.
Обновите Gemfile
раскомментированную gem 'therubyracer'
строку, чтобы она выглядела так:
# Gemfile
gem 'therubyracer', platforms: :ruby
Запустите bundle
команду после обновления Gemfile
.
Сообщение об ошибке связано с тем, что у вас не установлена среда выполнения.
Обновление: параметры в Windows
Я успешно установил и использовал closure-compiler
gem в Windows 7 x64 arch. Мое окно разработки время от времени переключается с linux на Windows, поэтому ниже приведена моя настройка Gemfile
:
# Gemfile
gem 'therubyracer', :platforms => :ruby
gem 'execjs', :platforms => :ruby
gem 'closure-compiler'
И обновите свою конфигурацию для любой из ваших сред config/environments/
или для всего приложения config/application.rb
, обновив следующую строку:
config.assets.js_compressor = :closure
Пожалуйста, смотрите раздел Настройка конвейера для получения дополнительной информации в RailsGuide.
Комментарии:
1. Я попробовал это и получил ту же ошибку. однако после отмены комментариев к этой строке и запуска bundle install я не вижу, что устанавливается therubyracer.
2. @ZachyBear, пожалуйста, ознакомьтесь с обновлением. Надеюсь, это поможет!