C'est un mémorandum. Merci pour la navigation. Puisqu'il s'agit d'un gribouillage, veuillez signaler toute erreur dans l'explication ou la description.
J'ai appris que vous pouvez appeler et exécuter une action dans ce contrôleur en spécifiant le nom action :: action dans redirect_to.
Profitant de cet apprentissage, j'ai pu rediriger l'action show en écrivant redirect_to action :: show quand il a été mis à jour (c'est-à-dire lorsque l'édition a été mise à jour).
def update
if @hoge.update(hoge_params)
redirect_to action: :show
else
render :edit
end
end
Cependant, dans les actions de création et de destruction, redirect_to action :: show a donné une erreur.
def create
@hoge = Hoge.new(hoge_params)
if @hoge.save
redirect_to action: :show
else
render :new
end
end
(Omis)
def destroy
if @hoge.destroy
redirect_to action: :show
else
render :show
end
end
Déclaration d'erreur
ActionController::UrlGenerationError in HogesController#create
No route matches {:action=>"show", :controller=>"hoges"}
J'ai recherché des itinéraires avec des itinéraires ferroviaires, décrit le chemin du préfixe et passé la clé si nécessaire.
def create
@hoge = Hoge.new(hoge_params)
if @hoge.save
redirect_to hoge_path(current_user.id)
else
render :new
end
end
(Omis)
def destroy
if @hoge.destroy
redirect_to hoge_path(current_user.id)
else
render :show
end
end
En faisant cela, il était possible de passer au même écran que celui affiché lors de la création d'un nouveau avec l'action de création ou de sa suppression avec l'action de destruction.
Pour pouvoir comprendre le déroulement du traitement, pourquoi et pourquoi l'action :: show n'a pas pu être redirigée.
Recommended Posts