Je sais comment définir la racine des routes de mon application rails sur un contrôleur et une action.
Mais comment ajouter un identifiant ?
/pages/show/1
devrait être la racine.
Comment puis-je définir cela ?
Je sais comment définir la racine des routes de mon application rails sur un contrôleur et une action.
Mais comment ajouter un identifiant ?
/pages/show/1
devrait être la racine.
Comment puis-je définir cela ?
Depuis Rails 4.0 , vous pouvez déclarer la route racine comme ceci :
root 'controller#action'
J'utilise Rails 5.1 pour pointer la page d'accueil vers un blog spécifique. Dans config/routes.rb j'ai...
root 'blogs#show', {id: 1}
Cela pointera la route racine vers /blogs/1
Je fais cela sur un site de blog que je construis. Le premier blog sera le blog principal du site ainsi que la page d'accueil.
À votre santé
La solution de Matthew fonctionne, mais je pense qu'il est plus lisible de récupérer l'objet. Par exemple, supposons que vous souhaitiez vous connecter à l'action Page#show
pour la page portant le nom « atterrissage ». C'est un peu plus lisible :
root :to => "pages#show", :id => Page.find_by_name("landing").id
Du point de vue des performances, cette solution est pire car elle nécessite une requête de base de données supplémentaire, mais cette solution est plus lisible si les performances ne sont pas une priorité élevée.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.