Es ist ein Memorandum. Vielen Dank für das Surfen. Da es sich um eine Skizze handelt, weisen Sie bitte auf Fehler in der Erklärung oder Beschreibung hin.
Ich habe gelernt, dass Sie eine Aktion in diesem Controller aufrufen und ausführen können, indem Sie den Namen action :: action in redirect_to angeben.
Aus diesem Wissen heraus konnte ich die Show-Aktion umleiten, indem ich redirect_to action :: show schrieb, als sie aktualisiert wurde (dh als die Bearbeitung aktualisiert wurde).
def update
if @hoge.update(hoge_params)
redirect_to action: :show
else
render :edit
end
end
Bei den Aktionen zum Erstellen und Zerstören gab redirect_to action :: show jedoch einen Fehler aus.
def create
@hoge = Hoge.new(hoge_params)
if @hoge.save
redirect_to action: :show
else
render :new
end
end
(Weggelassen)
def destroy
if @hoge.destroy
redirect_to action: :show
else
render :show
end
end
Fehleranweisung
ActionController::UrlGenerationError in HogesController#create
No route matches {:action=>"show", :controller=>"hoges"}
Ich suchte nach Routen mit Schienenrouten, beschrieb den Präfixpfad und übergab den Schlüssel bei Bedarf.
def create
@hoge = Hoge.new(hoge_params)
if @hoge.save
redirect_to hoge_path(current_user.id)
else
render :new
end
end
(Weggelassen)
def destroy
if @hoge.destroy
redirect_to hoge_path(current_user.id)
else
render :show
end
end
Auf diese Weise war es möglich, zum gleichen Bildschirm wie show zu wechseln, wenn mit der Aktion create eine neue erstellt oder mit der Aktion destroy gelöscht wurde.
Um den Ablauf der Verarbeitung verstehen zu können, warum und warum die action :: show nicht umgeleitet werden konnte.
Recommended Posts