Zastanawiam się, dlaczego nie ma podwójnego renderowania, gdy istnieje redirect_to
lub render
w before_action
. Rozważmy następujący przykład:Dlaczego nie ma podwójnego renderowania podczas korzystania z before_action?
class SomeController < ApplicationController
before_action :callback
def new
callback2
render 'new'
end
def callback
render 'new'
end
def callback2
render 'new'
end
end
widzę, że before_action
będzie bezużyteczny, jeśli nie można przekierować, ale jak to jest? Jeśli skomentuję numer before_action
, zostanie zgłoszony wyjątek. W jaki sposób zaimplementowano before_action
, aby nie powodować podwójnego renderowania?
Nie jestem pewien, czy dobrze rozumiem twoje pytanie, ale jeśli to zrobię, nie ma podwójnego renderowania, ponieważ nic nie zostało jeszcze wykonane. Wierzę, że 'before_action' zmienia to, co zostanie wyrenderowane. –
Jeśli ustawiasz wywołanie zwrotne: before_action, to jest wywoływane przed załadowaniem działania, więc w kodzie, gdy je wywołasz, renderowanie wywołania zwrotnego "nowe" przed załadowaniem nowej akcji, używam słowa ładowania, aby zrozumieć je lepiej –
Jak mogę wdrożyć moje posiadać 'before_action'? Podałem przykład z 'callback2' dla zilustrowania, że bez' before_action' będzie podwójne renderowanie. – Marii