web-dev-qa-db-ja.com

実行時のエラーRails app-ExecJS :: RuntimeError

私はこれをグーグルで試しました、そして私の問題に対する答えをまだ見つけていません。

Railsを介して単純なコントローラースクリプトを実行しようとしています。ページにアクセスすると、このエラーが発生します。

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

17
JoeMoe1984

あなたはjavascript用の追加のgemをインストールする必要があります。 gemfileを編集し、gem 'therubyracer'を追加します。次にbundleを実行して新しいgemをインストールできます。

これがあなたのソリューションの詳細です: http://www.railszilla.com/2011/12/Rails-3-coffescript-execjs/

20
RailsZilla

それも私に起こりました! 「nodejs」をインストールする必要があります。私がUbuntu Linuxで作業しているときに、次のことを行いました。

apt-get install nodejs 

出典: http://forums.pragprog.com/forums/148/topics/9665#posts-26576 (Sam Rubyの投稿)

18
Martin

本番サーバーでこの問題が発生している場合は、メモリの使用が原因である可能性があります。アセットのプリコンパイル中に、サーバーは大量のメモリを使用します。

consider restarting your production server. 
5
Aleem

上記のどれもうまくいきませんでした。 。 。インストール済みgem 'coffee-script-source', '1.8.0'

その後、アプリケーションは問題なく実行を開始しました。

3

JavaScriptランナーが欠落しているようです

gem 'therubyracer'

その後

 bundle install

次に、実動サーバーを使用している場合はサーバーを再始動してから、実動サーバーの再始動を検討してください。

それは間違いなくあなたの問題を解決します、

乾杯

0

いくつかの宝石が不足しているようです。

Gemfileに追加:

gem 'therubyracer'
gem 'execjs'

次に、$ bundle installを実行してインストールします。

0
PanXo