ti-enxame.com

Erro ao executar o aplicativo Rails - ExecJS :: RuntimeError

Eu tentei googling isso e eu não encontrei uma resposta ainda para o meu problema.

Eu estou tentando executar um script controlador simples através do Rails e ele está me dando este erro quando eu chegar à página.

ExecJS::RuntimeError in Say#hello

Obviamente Say é o controlador e olá é o método. Mais abaixo na página eu recebo mais informações sobre o erro.

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

Eu verifiquei este arquivo e não há nada nele além do código comentado. Há algo supostamente aqui?

Aqui está o que está no arquivo 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/

Abaixo da página, mais vejo que posso fazer um rastreamento de aplicativo que me mostra.

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

Eu também posso fazer o rastreamento do framework também. Esta vai ser uma longa lista pelo caminho.

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'
....

Há mais, mas é uma lista bastante longa e eu não quero te entediar. Deixe-me saber se você precisa da lista completa e vou colá-lo.

Estou executando o Mac OS X com o seguinte - Ruby 1.9.2 - Rails 3.1.0 - Gem 1.8.10 - sqlite3 3.7.9

17
JoeMoe1984

você tem que instalar uma jóia adicional para o javascript. editar gemfile e adicionar gem 'therubyracer'. Você pode então executar o pacote para instalar a nova jóia.

aqui está sua solução em detalhes: http://www.railszilla.com/2011/12/Rails-3-coffescript-execjs/

20
RailsZilla

Isso aconteceu comigo também! Você precisa instalar " nodejs ". Como eu trabalho com o Ubuntu Linux eu fiz: 

apt-get install nodejs 

Fonte: http://forums.pragprog.com/forums/148/topics/9665#posts-26576 (post do Sam Ruby)

18
Martin

Se você está tendo este problema no servidor de produção, isso pode ser devido ao uso de memória. Ao fazer ativos, o servidor de pré-compilação usa muita memória.

consider restarting your production server. 
5
Aleem

Nenhum dos acima trabalhou para mim. . . Eu instalei gem 'coffee-script-source', '1.8.0'.

Então aplicativo começou a correr sem nenhum problema.

2
ajinkya Jahagirdar

Parece que você pode estar perdendo algumas gemas.

Adicione ao seu Gemfile:

gem 'therubyracer'
gem 'execjs'

Em seguida, execute $ bundle install para instalá-los.

0
PanXo