Rails Routing (root: to =>…)

Je sais configurer la racine des routes de mon application rails sur un contrôleur et une action.

Mais comment append un identifiant?

/pages/show/1 devrait être la racine.

Comment définir cela?

Eu le même problème et cela a fonctionné pour moi:

 root :to => "pages#show", :id => '1' 

A partir de Rails 4.0 , 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 d’aller chercher l’object. Par exemple, supposons que vous vouliez rooter l’action Page#show 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 sharepoint vue des performances, cette solution est pire car elle nécessite une requête de firebase database supplémentaire, mais cette solution est plus lisible si les performances ne sont pas prioritaires.

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 dirigera la route racine vers / blogs / 1

Je le fais sur un 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 la console Rails. rake routes | grep root rake routes | grep root , devrait montrer quelque chose comme:

 root /pages/show/:id(.:format) {:controller=>"pages", :action=>"show"} 

J’espère que cela pourra aider.

Utiliser Rails 5.1 Ajoutez ceci à config / routes.rb

 root 'pages#show', {id: 1}