Error al ejecutar la aplicación Rails – ExecJS :: RuntimeError

Intenté buscar en Google esto y aún no he encontrado una respuesta a mi problema.

Estoy tratando de ejecutar un script de controlador simple a través de Rails y me está dando este error cuando llego a la página.

ExecJS::RuntimeError in Say#hello 

Obviamente, Say es el controlador y hola es el método. Más abajo en la página recibo más información sobre el error.

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

Revisé este archivo y no hay nada en él además del código comentado. ¿Se supone que hay algo aquí?

Aquí está lo que está en el archivo 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/ 

Más abajo de la página, veo que puedo hacer un seguimiento de aplicaciones que me muestra.

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

También puedo hacer la traza del marco también. Esta va a ser una larga lista por cierto.

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

Hay más, pero es una lista bastante larga y no quiero aburrirlo. Avíseme si necesita la lista completa y la pegaré.

Estoy ejecutando Mac OS X con lo siguiente – Ruby 1.9.2 – Rails 3.1.0 – Gem 1.8.10 – sqlite3 3.7.9

tienes que instalar una gem adicional para javascript. edite el archivo gem y agregue la gem ‘therubyracer’. A continuación, puede ejecutar paquete para instalar la nueva gem.

aquí está su solución en detalle: http://www.railszilla.com/2011/12/rails-3-coffescript-execjs/

¡También me pasó a mí! Necesita instalar ” nodejs “. Cuando trabajo con Ubuntu Linux lo hice:

 apt-get install nodejs 

Fuente: http://forums.pragprog.com/forums/148/topics/9665#posts-26576 (publicación de Sam Ruby)

Si tiene este problema en el servidor de producción, esto puede deberse al uso de la memoria. mientras que el servidor de precomstackción de activos usa mucha memoria.

 consider restarting your production server. 

Ninguno de los anteriores funcionó para mí. . . Instalé gem 'coffee-script-source', '1.8.0' .

Entonces la aplicación comenzó a funcionar sin ningún problema.

Parece que te pueden faltar algunas gems.

Agrega a tu Gemfile:

 gem 'therubyracer' gem 'execjs' 

Y luego ejecute $ bundle install para instalarlos.