Bonsoir Homme Aloha, Yasunori!
Aujourd'hui, j'ai eu du mal à décrire le routage lors de la création d'un portefeuille, je vais donc l'écrire comme un mémorandum pour ceux qui souffrent de la même chose ou lorsque je l'oublie.
Cela fait longtemps, donc je vais d'abord poster la conclusion.
Si vous ne souhaitez pas que l'URL de la page à laquelle vous accédez lorsque vous appuyez sur le bouton de recherche soit sous le contrôle du contrôleur,
config/routes.rb
Rails.application.routes.draw do
get '/:name', to: 'Nom du contrôleur#edit'
end
Et ça va! !!
↓ Cliquez ici pour la page de référence Acheminement des documents Rails [Conception d'itinéraire] Comment basculer et afficher plusieurs vues en une seule action
Eh bien, j'écrirai en détail ci-dessous.
Je voulais créer une fonction qui passe à la page de recherche de catégorie d'hôtel lorsque j'appuie sur le bouton nommé __ "Hotel" __ de la page supérieure, mais je voulais que l'URL soit au format "localhost: 3000 / hotel". Tout d'abord, j'ai créé chaque contrôleur séparément et je l'ai décrit dans le routage.
config/routes.rb
Rails.application.routes.draw do
resources :hotels, only [:index]
end
ensuite
hotels GET /hotels(.:format) hotels#index
Le routage a été créé.
Avec cela, l'URL pourrait être réalisée sous une forme proche de celle souhaitée, mais plus il y a d'éléments, plus un contrôleur séparé doit être créé.
Cela signifie qu'il vous suffit de changer le contrôleur appelé! j'ai pensé
config/routes.rb
Rails.application.routes.draw do
resources :hotels, only [:index], controller: 'experiences'
end
Si vous faites cela, l'action d'index` du ʻexperiences controller sera appelée lorsque vous y accédez, donc je pense que le fichier de vue peut être affiché en utilisant un fichier modèle etc., mais dans ce cas rien n'est décrit Vous vous retrouvez avec un "contrôleur d'hôtels" manquant. Cette fois, j'en écris un, mais à mesure que le nombre d'éléments augmente, le nombre de descriptions de routage augmentera et le nombre de fichiers augmentera.
Je me demandais ce qui s'était passé ... et j'ai découvert que je faisais des recherches sur diverses choses! !! Tout d'abord, si vous souhaitez spécifier l'URL
config/routes.rb
Rails.application.routes.draw do
get '/hotel', to: 'experiences#index'
end
C'était bien d'écrire! !!
Cela a été mentionné sur la page de routage de la documentation Rails.
J'ai réalisé une fois de plus l'importance de vérifier fermement les documents ...
En passant, cela seul a atteint l'objectif initial de "définir l'URL sur localhost: 3000 / hotel
", mais si elle est laissée telle quelle, le nombre de pages augmentera en plus de / hotel
. À ce moment-là, le nombre de descriptions augmentera régulièrement.
C'est un gros problème, alors améliorons cela aussi! !!
Vous pouvez définir une nouvelle «action d'édition» dans le «contrôleur d'expériences» et la mettre ensemble pour que tout le routage y soit! !!
controllers/experiences_controller.rb
class ExperiencesController < ApplicationController
def edit
render "/#{params[:name]}"
end
end
config/routes.rb
Rails.application.routes.draw do
get '/:name', to: 'experiences#edit'
end
De plus, dans la partie /: name
de l'URL, en définissant: nom
sur la clé dans les paramètres lors de l'envoi de la requête et en passant le nom de fichier du modèle partiel comme valeur, le render dans l''action d'édition
Le fichier de vue correspondant est affiché par la méthode `.
Je peux sentir l'importance de lire les documents officiels et la gratitude des documents laissés par mes prédécesseurs ...
Si vous rencontrez des problèmes, j'aimerais continuer à enquêter! !! (Cela ressemble à une autre application de puissance, mais est-ce que ça va ...)
Recommended Posts