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