Szukałem i nie byłem w stanie znaleźć rozwiązania dla tego typu mechaniki. Chcę ładować wszystkie strony normalnie w Railsach, ale gdy tylko wykonuję prośbę ajaxową, po prostu chcę zwrócić stronę bez układu. Tak więc za każdym razem, gdy robię zapytanie ajaxowe, mogę dołączyć ?page=true
lub coś podobnego do tego, a Railsy po prostu zwracają stronę bez układu.Szyny uniemożliwiają układ podczas żądania AJAX
Czy to możliwe? Czy jest lepszy sposób na zrobienie tego, czego mi brakuje?
Dzięki za pomoc!
Ostateczne rozwiązanie Kodeks pracy:
W regulatorze wszystko co musisz zrobić, to dołączyć trochę logiki do format.html
w bloku respond_to
.
W metodzie show
np
def show
# code beforehand
respond_to do |format|
format.html { render :layout => !request.xhr? }
# other formats
end
end
I to jest to! Zapobiegaj układom podczas żądań AJAX!
Uwaga: Dzięki komentarzowi smathy na temat jego odpowiedzi zostało to jeszcze bardziej uproszczone. Pierwotnie miałem format.html { render :layout => nil if request.xhr? }
To rozwiązanie działa równie dobrze, ale modyfikacja smathy jeszcze bardziej upraszcza.
Czy można to samo zrobić w kontrolerze aplikacji dla każdego żądania ajax? –
możliwy duplikat [Nigdy nie renderuj układu w odpowiedzi na xhrs] (http://stackoverflow.com/questions/2444866/never-render-a-layout-in-response-to-xhrs) – fivedigit