31

"generate scaffold Users ..." コマンドを実行しただけです。

それから私はこれを見に行きlocalhost:3000/users/ます:

 ExecJS::RuntimeError in Users#index

Showing C:/Users/TheOnlyUser/Desktop/NMS/nms2/app/views/layouts/application.html.erb where line #6 raised:


  (in C:/Users/TheOnlyUser/Desktop/NMS/nms2/app/assets/javascripts/ads.js.coffee)

Extracted source (around line #6):

3: <head>
4:   <title>Nms2</title>
5:   <%= stylesheet_link_tag    "application", :media => "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>

Rails.root: C:/Users/TheOnlyUser/Desktop/NMS/nms2
Application Trace | Framework Trace | Full Trace

app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___753556572_43068540'
app/controllers/users_controller.rb:7:in `index'
...

それはどういう意味ですか?

アップデート:

それは Windows 8 にあります。Windows 7 ではこれらのエラーは発生しません。

4

8 に答える 8

83

私の友人は、数か月前に Win 8 RTM で Rails のチュートリアルを試みていて、このエラーに遭遇しました。この問題が Windows 7 にも存在するかどうかはわかりませんが、これが役立つ可能性があります。

オプション:

1) 問題の削除 //= require_tree ./無視 -そもそもこの行によって問題が発生することはありません。システム上の JavaScript ランタイムで ExecJS が適切に動作するという実際の問題があり、この行を削除することはその事実を無視しているだけです。

2) Node.js のインストール / 逃げる - 多くの人は Node.js をインストールして、既にシステムにある JavaScript ランタイムの代わりにそれを使用しているようです。これは有効なオプションですが、追加のソフトウェアも必要であり、システムに既にある JavaScript ランタイムで ExecJS が適切に動作しないという元の問題を回避するだけです。システム上の既存の JavaScript ランタイムが機能するはずである場合、ソフトウェアをさらにインストールする代わりに、それを機能させてみませんか? ExecJS 作成者によると、既に Windows に組み込まれているランタイムは実際にサポートされています...

ExecJS を使用すると、Ruby から JavaScript コードを実行できます。JavaScript プログラムの評価に利用できる最適なランタイムを自動的に選択し、結果を Ruby オブジェクトとして返します。

ExecJS は次のランタイムをサポートしています。

  • therubyracer - Ruby に埋め込まれた Google V8
  • therubyrhino - JRuby に埋め込まれた Mozilla Rhino
  • Node.js
  • Apple JavaScriptCore - Mac OS X に含まれています
  • Microsoft Windows スクリプト ホスト (JScript)

( github.com/sstephenson/execjs#execjsから)

3) 問題を実際に修正する / 学習 -オプション 1 と 2 の知識を使用して、他の解決策を検索します。根本的な問題に関する情報を実際に見つける前に、オプション 1 または 2 が受け入れられた解決策であることがわかったときに閉じた Web ページの数はわかりません。私たちが探し続けた唯一の理由は、Rails チームが (1) scaffold で生成されたすべてのプロジェクトにコード行を挿入して問題を引き起こした、または (2) そのデフォルトを実行するためだけに追加のソフトウェアをインストールする必要があるとは信じられなかったことです。コード行。そのため、最終的に根本的な問題の修正にたどり着きました (マイルは異なる場合があります)。

問題が発生したシステムで、 ExecJSruntimes.rbファイルを見つけます。こんな感じです。見つかったファイルのコピーをバックアップ用に作成します。元の runtimes.rb を編集用に開きます。行で始まるセクションを見つけますJScript = ExternalRuntime.new(。そのセクションで、 - を含む行でのみを:command => "cscript //E:jscript //Nologo //U",削除し//Uます。次に、 - を含む行で:encoding => 'UTF-16LE' # CScript with //U returns UTF-16LEUTF-16LE を に変更しUTF-8ます。変更をファイルに保存します。ファイルのこのセクションは次のようになります。

JScript = ExternalRuntime.new(
    :name        => "JScript",
    :command     => "cscript //E:jscript //Nologo",
    :runner_path => ExecJS.root + "/support/jscript_runner.js",
    :encoding    => 'UTF-8' # CScript with //U returns UTF-16LE
)

次に、Rails サーバーを停止して再起動し、元のエラーを生成したブラウザーのページを更新します。ページがエラーなしでロードされることを願っています。最初に結果を投稿した ExecJS の問題スレッドは次のとおりです: https://github.com/sstephenson/execjs/issues/81#issuecomment-9892952

これで問題が解決しない場合は、変更した runtimes.rb を (できれば) 作成したバックアップ コピーでいつでも上書きできます。そうすれば、すべてが振り出しに戻ります。その場合は、オプション 3 を検討して検索を続けてください。最終的に何がうまくいくか教えてください.require_treeの削除またはnode.jsのインストールでない限り、すでに多くのことが行われています。:)

于 2013-01-02T08:55:37.137 に答える
4

コメンテーターが言ったように、あなたはおそらく宝石を見逃しています. 以下を gemfile に追加してみてください。

gem 'therubyracer'

そして走るbundle install

于 2012-11-23T15:31:58.743 に答える
2

私は最初、Kevin P による上記のソリューション 3 を使用しましたが、Windows 8 マシンではすべて正常に動作していました。

昨夜 (2013 年 8 月 19 日) の MS アップデートの後、Rails アプリでホームページをレンダリングすることさえできませんでした。

node.js をインストールして動作したので、現在ソリューション 2 を使用しています。

于 2013-08-20T00:04:14.250 に答える
1

この問題を解決する最も簡単な方法は、Node.js をインストールすることです。Rubyはそれを自動的に検出し、JSランタイムエラーはもうありません

于 2013-07-03T16:03:32.110 に答える
0

この問題を修正した最速の方法は次のとおりです。

宝石「therubyracer」、「0.12.1」

バンドルの更新

バンドル インストール

これが役立つことを願っています。

于 2014-07-06T00:50:56.457 に答える
0

runtimes.rb ファイル

 JScript = ExternalRuntime.new(
        :name        => "JScript",
        :command     => "cscript //E:jscript //Nologo",
        :runner_path => ExecJS.root + "/support/jscript_runner.js",
        :encoding    => 'UTF-8' # CScript with //U returns UTF-16LE
    )

Windows 8.1 での作業

于 2013-11-01T05:11:03.077 に答える
0

私は同じ問題を抱えていましたが、Kevin P による解決策 3 が役に立ちました (runments.rb ファイルの編集)。
ソリューション適用時の私の設定は次のとおりです:
OS: Windows 8.1
Ruby バージョン: 1.9.3p484
Rails バージョン: 3.2.14

于 2013-12-31T21:18:02.133 に答える