Ошибка при запуске приложения rails - ExecJS :: RuntimeError - PullRequest
17 голосов
/ 03 декабря 2011

Я попытался погуглить это, и я еще не нашел ответ на свою проблему.

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

ExecJS::RuntimeError in Say#hello

Очевидно, что Say - это контроллер, а hello - метод.Далее по странице я получаю больше информации об ошибке.

dyld: unknown required load command 0x80000022
(in /Users/JoeMoe/Sites/demoRails/app/assets/javascripts/say.js.coffee)

Я проверил этот файл, и в нем нет ничего, кроме комментария кода.Здесь что-то должно быть?

Вот что в файле say.js.coffee

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

Еще немного вниз по странице, я вижу, что могу сделать трассировку приложения, которая показываетя.

app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__169683399_21885150'

Я также могу сделать трассировку фреймворка.Кстати, этот список будет длинным.

execjs (1.2.9) lib/execjs/external_runtime.rb:129:in `exec_runtime'
execjs (1.2.9) lib/execjs/external_runtime.rb:27:in `block in exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
execjs (1.2.9) lib/execjs/external_runtime.rb:26:in `exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:18:in `eval'
execjs (1.2.9) lib/execjs/external_runtime.rb:32:in `call'
coffee-script (2.2.0) lib/coffee_script.rb:57:in `compile'
tilt (1.3.3) lib/tilt/coffee.rb:46:in `evaluate'
tilt (1.3.3) lib/tilt/template.rb:76:in `render'
sprockets (2.0.3) lib/sprockets/context.rb:175:in `block in evaluate'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `each'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `evaluate'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:171:in`build_dependency_context_and_body'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:135:in `dependency_context'
....

Есть еще кое-что, но это довольно длинный список, и я не хочу утомлять вас.Дайте мне знать, если вам нужен полный список, и я его вставлю.

Я использую Mac OS X со следующим - Ruby 1.9.2 - Rails 3.1.0 - Gem 1.8.10 - sqlite3 3.7.9

Ответы [ 5 ]

20 голосов
/ 16 января 2012

вам нужно установить дополнительный гем для javascript.отредактируйте gemfile и добавьте gem 'therubyracer'.Затем вы можете запустить bundle для установки нового гема.

Вот ваше решение в деталях: http://www.railszilla.com/2011/12/rails-3-coffescript-execjs/

18 голосов
/ 11 декабря 2011

Это случилось со мной тоже! Вам необходимо установить " nodejs ". Работая с Ubuntu Linux, я сделал:

apt-get install nodejs 

Источник: http://forums.pragprog.com/forums/148/topics/9665#posts-26576 (пост Сэма Руби)

5 голосов
/ 15 декабря 2016

Если у вас возникла эта проблема на рабочем сервере, это может быть связано с использованием памяти. при выполнении сервера прекомпиляции ресурсов используется много памяти.

consider restarting your production server. 
3 голосов
/ 15 марта 2016

Ничто из вышеперечисленного не сработало для меня.,,Я установил gem 'coffee-script-source', '1.8.0'.

Затем приложение запустилось без проблем.

0 голосов
/ 30 июля 2015

Похоже, вам не хватает нескольких драгоценных камней.

Добавьте в свой Gemfile:

gem 'therubyracer'
gem 'execjs'

А затем запустите $ bundle install, чтобы установить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...