68 votes

: comme dans les rails routes.rb

En config/routes.rb , j'ai essayé les deux:

 root :to => 'things#index', :as => 'things'
 

et

 root :to => 'things#index'
 

Quand je frappe http://localhost:3000/ , les deux approches fonctionnent et rien ne semble différent.

A quoi sert l'option :as utilisée?

101voto

Andy Lindeman Points 7213

L'option: as forme un itinéraire nommé.

Habituellement, il est utilisé dans un itinéraire non racine. Par exemple:

 match '/search' => 'search#search', :as => 'search' # SearchController#search 

Vous pourriez alors faire quelque chose comme:

 <%= link_to search_path, 'Click Here to Search!' %> 

search_path et search_url sont définis à cause des :as

Pour une route racine, vous n'avez pas vraiment besoin de :as car les aides de l'URL root_path et root_url sont définies pour vous par Rails.

19voto

Roman Bambycha Points 66

Rails 4 compatible.

En path_to_your_app/config/routes.rb

get "/profile/edit" => "users#profile_edit", :as => "edit_me"

Depuis ruby 2.0, vous pouvez utiliser:

get "/profile/edit", to: "users#profile_edit", as: "edit_me"

En path_to_your_app/app/views/**in vue requise

<%= link_to "Edit profile", edit_me_path %>

Ne pas utiliser match si vous ne vous sentez pas sûr de vous en avez besoin:

C'est la vulnérabilité lorsque vous l'utilisez dans le motif suivant:

match ':controller/:action/:id'

À partir de la documentation:

Vous ne devez pas utiliser l' match méthode de votre routeur sans la spécification d'une méthode HTTP. Si vous souhaitez exposer votre action à la fois GET et POST, ajouter par: [:get, :post] option. Si vous souhaitez exposer votre action pour OBTENIR, utiliser get dans le routeur:

Au lieu de: match "controller#action"

Faire: get "controller#action"

Lire plus sur:

Sur le match

http://github.com/rails/rails/issues/5964

Sur les routes de la cartographie

http://apidock.com/rails/v4.0.2/ActionDispatch/Routing/Mapper/Base/match

http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html

Sur les itinéraires en général

http://api.rubyonrails.org/classes/ActionDispatch/Routing.html

7voto

David Sulc Points 13259

L'option :as crée un chemin nommé. Vous pouvez ensuite appeler ce chemin dans vos contrôleurs et vos vues (par exemple, redirect_to things_path ). Ce n'est pas très utile pour le chemin racine (puisqu'il est déjà nommé root ), mais c'est très utile pour les nouveaux itinéraires que vous ajoutez.

Prograide.com

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.

Powered by:

X