Je sais comment définir la racine des routes de mon application Rails vers un contrôleur et une action).
Mais comment ajouter un identifiant?
/pages/show/1
devrait être la racine.
Comment régler cela?
Eu ce même problème et cela a fonctionné pour moi:
root :to => "pages#show", :id => '1'
Depuis Rails 4. , vous pouvez déclarer la route racine comme ceci:
root 'controller#action'
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 rooter le Page#show
action pour la page avec le nom "landing". 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.
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 du site principal ainsi que la page d'accueil.
À votre santé
Essayer:
match 'pages/show/:id' => 'pages#show', :as => :root
Dans Rails console. rake routes | grep root
, devrait montrer quelque chose comme:
root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"}
J'espère que ça t'as aidé.
Utilisez Rails 5.1 Ajoutez ceci à la config/routes.rb
root 'pages#show', {id: 1}