j
Railsの関数について言及しているブログに出くわしました。彼らはそれを使ってajaxスタイルのページを更新していました。
$('#cart').html("<%=j render @cart %>");
パーシャルを使用してパーシャルをレンダリングしているようですcart
が、ポイントはj
何ですか?文字列をJavaScriptが受け入れるものに変換するという記事をいくつか見つけましたが、それはどういう意味ですか?
j
Railsの関数について言及しているブログに出くわしました。彼らはそれを使ってajaxスタイルのページを更新していました。
$('#cart').html("<%=j render @cart %>");
パーシャルを使用してパーシャルをレンダリングしているようですcart
が、ポイントはj
何ですか?文字列をJavaScriptが受け入れるものに変換するという記事をいくつか見つけましたが、それはどういう意味ですか?
ピーターは実際に正解を投稿しました。しかし、私は詳しく説明しようとします:
あなたはajaxの基本的な概念に精通していると思いますか?ぎこちない方法でコメントを作成できるようにしたいとします。レールでは、次の方法でPOSTリクエストに応答できますCommentsController
。
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
render.js
end
end
これは、クライアントからのajaxリクエスト(jquery / javascriptを介して)が送信されたCommentsController
場合、フォーマット()を認識し、 _create.js.erb.js
パーシャルで応答することを意味します。パーシャルは、次のような新しいコメントをレンダリングします。
$('.comments').append("<%=j render @comment %>");
ここで、jまたはescape_javascriptメソッドを取得します。
一部の悪意のあるユーザーは、次のメソッドを使用しない限り、ページで実行される(悪意のある)javascriptを含むコメントを送信する可能性があります。j
JavaScriptセグメントのキャリッジリターンと一重引用符および二重引用符をエスケープします。
したがって、ブラウザでのコードの実行を防ぎます。
escape_javascript(javascript)
JavaScriptセグメントのキャリッジリターンと一重引用符および二重引用符をエスケープします。
エイリアスj()からも利用できます。
Railsのドキュメントから。