0

ここで説明するように、railsリモート呼び出しからのjsRUNTIMEエラーがサイレントに失敗することはよく理解されています。

http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

問題は通常、js.erbのJavaScriptが実行されていないことではなく、実行されていてエラーが発生していることです。デフォルトでは、jQueryがJavaScript応答を処理するとき、2つのことを行います。応答を実行(または評価)し、テキストとして返します。

ただし、JS評価にエラーがある場合は、お気に入りのJavaScriptコンソールにそのエラーは表示されません。自動JS評価はサイレントに失敗するため、jQueryは応答をテキストとしてのみ解釈しているように見えます。

確かに、何も起こらないことがわかり、最終的にはリンク/ボタンがRailsリモートコールへのリンクであることがわかり、[ネットワーク]タブに移動し、js応答をコピーして、コンソールに貼り付けます。

しかし、なぜこれを解決できないので、これをすべて理解しなくてもコンソールにエラーが表示されるのでしょうか。

これにより、アプリケーションを動的に更新するRailsリモート手法の価値は、フォームパーシャルをレンダリングする特定のケースに限定する必要があると思います。そうでない場合は、標準のJQuery.ajaxを使用して長期間維持する方がはるかに簡単です。約束オブジェクト。

4

1 に答える 1

0

解決策は、Rails UJS を使用する場合、エラーの応答を確認し、戻り値をコンソールに貼り付けてエラーを検出する必要があるようです。

于 2013-01-12T08:39:29.447 に答える