4 Stimmen

Rendering einer .js-Controller-Anfrage als html

を持っています。 before_filter in meiner Rails-App, die die Benutzer zu login_url wenn sie abgemeldet sind, wenn sie einen Antrag stellen (entweder im html- oder js-Format).

Ich möchte meine format.js um ein identisches Ergebnis zu erzielen wie format.html im folgenden Fall, um die Ansicht mit dem Layout "notice" darzustellen. Wie kann ich dies tun?

respond_to do |format|
  format.js
  format.html{ render :layout => "notice" }
end

7voto

demental Punkte 1404

Können Sie die verwendbaren Formate wie folgt erzwingen:

respond_to do |format|
  format.js   { render :layout => "notice", :formats => [:html] }
  format.html { render :layout => "notice" }
end

EDITAR:

Was Sie brauchen, ist ein Teil des Dokuments, der durch die Antwort ersetzt wird. Dies geschieht, indem man mit einem Javascript antwortet, das diese Aufgabe übernimmt:

In Ihrem Controller :

respond_to do |format|
  format.js
  format.html { render :layout => "notice" }
end

In Ihrer login.js-Ansicht :

$('#whatever').html('<%= escape_javascript( render :login, formats: [ :html ]) %>')

... oder etwas Ähnliches

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X