1

Rails アプリで AJAX を使用して、必要に応じて JS エラー メッセージを表示しています。最初は機能していましたが、しばらくしてから戻ってきても、まだ JS エラー メッセージが表示されますが、何らかの理由でJS ファイル全体が HTML としてウィンドウに出力されるようになりました。これは、コントローラーで呼び出されるものです。

respond_to do |format|
  format.js { render :partial => 'error' }
end

名前が付けられた私のファイルに_error.js.erbは、含まれているものに関係なくRailsがウィンドウに出力するため、関係のないJSが含まれています。

これは、JS がウィンドウに出力されたように見えるものです: (JS をコメントアウトして、違いがあるかどうかを確認してみました)

イムグル

4

2 に答える 2

0

やったよ!数年後に疑問に思っている人がいる場合に備えて、答えがあります。レンダリングされた値をjavascript_taghtml.erb 内に配置する必要があります。このような:

javascript_tag render: 'error'

これにより、レンダリングされたものが<script>...</script>タグの間に配置され、不要なコードがすべてエスケープされます。

ここにドキュメントがあります

于 2017-09-11T18:38:15.857 に答える