Ошибка при запуске приложения rails - ExecJS::RuntimeError

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

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

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 ответов

Решение

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

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

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

apt-get install nodejs 

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

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

consider restarting your production server. 

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

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

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

Добавьте к вашему Gemfile:

gem 'therubyracer'
gem 'execjs'

А потом беги $ bundle install установить их.

Кажется, что бегун javascript отсутствует, вам просто нужно сделать

gem 'therubyracer'

тогда

 bundle install

затем перезапустите сервер, если вы используете производственный сервер, рассмотрите возможность перезапуска производственного сервера.

Это обязательно решит вашу проблему,

ура

Другие вопросы по тегам