Rails de routage à la racine
Lors de la configuration de la racine de l'itinéraire, il n'existe aucune raison impérieuse de choisir cette syntaxe:
map.root :controller => "login", :action => 'show'
au cours de cette syntaxe:
match "/" => "login#show"
La deuxième syntaxe vous permettra d'utiliser le :constraints
option, où la première habitude. Est-il une raison d'utiliser la première option?
- Réponse dépend de votre version de Rails. ce
providence
répondu fonctionne pour Rails 3... - hmm, oui, il paraît que je suis un mélange de rails 2 rails et 3.
map.*
travaille dans rails 3, mais ce n'est pas la méthode préférée - Pourquoi auriez-vous besoin pour utiliser
constraints
pour le chemin d'accès racine? Autant que je sache, la racine de la route est seulement que: "/" ... autre chose doit correspondre à une autre route définie. - Je veux les différents sous-domaines pour avoir des racines différentes.
- vous pouvez utiliser des contraintes sur le chemin de la racine à avoir différentes racine des itinéraires basés sur le domaine/sous-domaine comme mentionné sur stackoverflow.com/a/6058737/137067
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez
root :to
rails 3 crée automatiquement les méthodes d'assistance root_url et root_path pour le référencement de votre racine de l'application. Ces méthodes sont souvent utilisées dans des gemmes pour faire référence à vos applications root et je ne suis pas vraiment sûr où ces derniers seraient point ou si elles fonctionnent même si vous ne spécifiez rien (jamais essayé). En Plus, c'est la "les rails de façon" de faire les choses de sorte qu'il est généralement préférable de le suivre, sauf si vous avez une très bonne raison.Je crois que la racine de routes doivent être configurés comme suit:
Les méthodes que vous avez suggéré sonores comme ils peuvent causer des conflits plus tard sur la route.
:constraints
. Même question s'applique, toute raison de le faire via lematch '/'
Dans les Rails 4, voici un rapide de code que vous pouvez utiliser:
Vous pouvez remplacer new_session avec show/index/etc, assurez-vous de définir votre login contrôleur.
Je pense que les deux suivantes sont les mêmes:
À l'instar d'autres chemins, si vous voulez un
root_path
, puis pour lematch '/'
, vous devez le spécifier par vous-même.Donc je pense qu'ils viennent de faire la même chose (routage vous
login#show
si le chemin est/
), mais le premier aurait plus de sens sémantique.