私はフロントエンドでバックエンドとjavascript /バックボーンでRailsを使うアプリケーションを書いています。私はbootstrap some rails models into my javascriptにしようとしています。具体的には、window.courses
というjs変数に@courses
の内容をロードしたいと思います。私はhtml.erb
ファイルに次のものを持っています。Rails to_jsonの出力でHTMLエンティティを処理するには?
<%= javascript_tag do %>
window.courses = JSON.parse('<%= @courses.to_json %>');
<% end %>
私はそう
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
のように、有効なJavaScriptにこれをレンダリングするerb
プリプロセッサを期待しています...しかし、その代わり、私はHTML entitiesを含むコードを取得しています。
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
明らかに、これを解析しようとするとjavascriptエラーが発生します。
有効なjavascriptを生成するために、どのようにこれらのHTMLエンティティに対処できるか知っていますか?私は1つのオプションがunescape the entities on the client sideになることを理解していますが、これはラウンドアバウトソリューションのようです。エスケープ処理を必要としないJSONをRailsに生成させる方法はありますか?
「<%= raw(@ courses.to_json)%>」を使用してください。 –
素晴らしい、ありがとう!私はこれを行う簡単な方法がなければならないと考えました。 –
@dB 'あなたは受け入れられた回答を更新することを検討しますか?これは非常に安全ではなく、多くのクロスサイトスクリプティングの脆弱性の原因となっています。 – oreoshake