私はこれをグーグルで試しました、そして私の問題に対する答えをまだ見つけていません。
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
あなたはjavascript用の追加のgemをインストールする必要があります。 gemfileを編集し、gem 'therubyracer'を追加します。次にbundleを実行して新しいgemをインストールできます。
これがあなたのソリューションの詳細です: 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#posts-26576 (Sam Rubyの投稿)
本番サーバーでこの問題が発生している場合は、メモリの使用が原因である可能性があります。アセットのプリコンパイル中に、サーバーは大量のメモリを使用します。
consider restarting your production server.
上記のどれもうまくいきませんでした。 。 。インストール済みgem 'coffee-script-source', '1.8.0'
。
その後、アプリケーションは問題なく実行を開始しました。
JavaScriptランナーが欠落しているようです
gem 'therubyracer'
その後
bundle install
次に、実動サーバーを使用している場合はサーバーを再始動してから、実動サーバーの再始動を検討してください。
それは間違いなくあなたの問題を解決します、
乾杯
いくつかの宝石が不足しているようです。
Gemfileに追加:
gem 'therubyracer'
gem 'execjs'
次に、$ bundle install
を実行してインストールします。