2016-04-04 15 views
0

Vorlagen Einige meiner js.erb drücken, wird nicht machen, es sei denn ichRails: render Layout falsch js Problem zu beheben auch das Layout überspringt, wenn zurück

respond_to do |format| 
    format.js { render layout: false } 
end 

benutzen, wie ich das Update verallgemeinern wollte, habe ich die folgenden in meiner Basis-Controller:

layout proc { request.xhr? ? false: 'custom'.freeze } 

Aber seitdem ich Ankündigung habe, die recht häufig, wenn ich die zurück-Taste drücken, wird das Layout nicht gerendert werden.

Ich mache hier offensichtlich etwas falsch, was passiert in beiden Fällen und was ist der richtige Weg, damit umzugehen?

Dank

Antwort

1

Dies sollte kein Problem in neueren Versionen von Rails sein, solange (1), das Layout den MIME-Typen im Dateinamen (zB custom.html.erb) und (2) Ihre XHR Anfrage richtig die JS fordert hat Art. Was scheint hier der Fall zu sein.

Verwenden Sie auch Turbolinks? Ihre Rückfrage kann als XHR interpretiert werden, obwohl Sie dies nicht erwartet haben. Ich würde empfehlen, den zweiten Ansatz "Zurück" Aktionen sind oft nicht vorhersehbar, da sie zwischengespeichert werden können. Verwenden Sie stattdessen die responders Syntax, wie in der Rails-Dokumentation beschrieben: http://edgeapi.rubyonrails.org/classes/ActionController/Responder.html

+0

Guten Ruf, mein Dateiname war custom.slim anstelle von custom.html.slim. Danke vielmals! – Nycen