[Ruby On Rails] Mesures d'urgence lorsque redirect_to action :: show ne peut pas être (ne peut pas être utilisé) dans l'action de création et de destruction

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.

Contexte

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

problème

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"}

Contre-mesures

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.

* Nous pensons que les mesures ci-dessus ne sont que des solutions de contournement d'urgence. (Parce que je manque d'apprentissage)

Choses à apprendre dans le futur

Pour pouvoir comprendre le déroulement du traitement, pourquoi et pourquoi l'action :: show n'a pas pu être redirigée.

Recommended Posts

[Ruby On Rails] Mesures d'urgence lorsque redirect_to action :: show ne peut pas être (ne peut pas être utilisé) dans l'action de création et de destruction
Ruby on Rails 5 guide pratique d'apprentissage rapide qui peut être utilisé sur le terrain Résumé
Points à retenir et concepts dans le didacticiel Ruby on Rails
Débutant a créé un portfolio avec Ruby on Rails
[Rails] "Pry-rails" qui peuvent être utilisés lors de l'enregistrement avec la méthode create
Cloud IDE: Heroku n'a pas pu être installé dans le didacticiel Ruby on Rails
Quand le terminal Ruby on Rails revient en arrière
[Rails] Les rappels définis avec des conditions on :: action ne peuvent pas être évités en utilisant skip_callback et set_callback.
(Ruby on Rails6) Comment créer un modèle et une table
[Ruby on Rails] Afficher rapidement le titre de la page dans le navigateur
[Ruby on Rails] Utilisez les cookies et ne les affichez qu'une seule fois lors de l'accès pour la première fois (en utilisant jquery.cookie.js)
Le CSS React.js dans l'application Rails déployée sur EC2 ne peut pas être chargé
Lorsque tomcat est démarré dans eclipse, "ClassNotFoundException" s'affiche et ne peut pas être démarré.
(Ruby on Rails6) Créer une base de données et l'afficher dans une vue
J'ai résumé le flux jusqu'à l'implémentation de simple_calendar dans Ruby on Rails.
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery
Pg_resetwal peut être utilisé pour démarrer le conteneur Docker PostgreSQL lorsque WAL est cassé et ne peut pas être démarré.
Exécutez la commande de serveur rails sur windows10, Ruby2.6.6 et obtenez "impossible de charger un tel fichier --sqlite3 / sqlite3_native"
Ruby on Rails compatible japonais-anglais i18n
Mesure lorsque le modèle ne peut pas être créé
Méthodes Ruby souvent utilisées dans Rails
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Comment déboguer le traitement dans le modèle Ruby on Rails avec juste la console
Ruby on Rails Lorsque vous ne connaissez pas la cause de la restauration lors de l'enregistrement.
Vérifiez si vous ne pouvez pas accéder au conteneur à partir de l'hôte dans l'environnement Laravel sur docker à l'aide du conteneur distant de VSCode.
Lors de la réaffectation à un argument dans une méthode Ruby puis en appelant `super` → Celui réaffecté est utilisé