Peter hat tatsächlich die richtige Antwort gepostet. Aber ich werde versuchen, es auszuarbeiten:
Ich denke, dass Sie mit dem Grundkonzept von Ajax vertraut sind? Sagen wir, Sie möchten in der Lage sein, Kommentare in einer Ajaxy-Mode zu erstellen. In Schienen Sie POST Anfragen in Ihrem CommentsController
über antworten kann:
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
render.js
end
end
Das bedeutet, wenn eine Ajax-Anforderung vom Client (über jquery/javascript) an die CommentsController
vorgelegt wird, wird das Format erkennen (.js
) und antworten Sie mit der _create.js.erb teilweise. Die partielle würde dann mit so etwas wie dies die neuen Kommentar machen:
$('.comments').append("<%=j render @comment %>");
Nun zum j oder escape_javascript Methode zu erhalten: Einige böse Nutzer einen Kommentar abgeben können (bösartige) JavaScript enthält, würde ausgeführt werden auf Ihrer Seite es sei denn Sie nutzen die j
Methode machen die
Escapes Zeilenumbrüche und einfache und doppelte Anführungszeichen für JavaScript Segmente.
und verhindert daher die Ausführung des Codes im Browser.
Beachten Sie, dass selbst wenn das, was Sie rendern, nicht vom Benutzer erstellt wird, Sie dennoch Zeichen vermeiden möchten, die nicht javascriptsicher sind, da Ihr JavaScript andernfalls möglicherweise beschädigt wird. – DaveMongoose