Peterが実際に正しい答えを投稿しました。しかし、私は精緻化しようとします:
あなたはajaxの基本的な概念に精通していると思いますか? あなたはajaxy形式でコメントを作成したいと考えています。これは(jqueryの/ JavaScriptで)クライアントからのAjaxリクエストがCommentsController
に提出された場合、それは形式を認識することを意味し
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
render.js
end
end
:あなたは経由であなたのCommentsController
でPOSTリクエストに応答することができるレールで (.js
)、_create.js.erb部分で応答します。 部分は、このような何かを使用して新しいコメントのレンダリングになります。今
$('.comments').append("<%=j render @comment %>");
Jまたはescape_javascript方法を取得するには: 一部悪ユーザーが(悪意のある)javascriptのだろうを含むコメントを提出することができますあなたがj
方法を利用してない限り、自分のページ上で実行され
エスケープキャリッジリターンとJavaScriptのための単一引用符と二重引用符セグメント。
です。したがって、ブラウザでコードが実行されないようにします。
出典
2012-09-20 18:35:16
wpp
レンダリングしているものがユーザー作成でない場合でも、JavaScriptが安全でない文字をエスケープしたい場合は、javascriptが壊れる可能性があるためです。 – DaveMongoose