ruby on rails - examples - : como en los rails routes.rb
root_path rails (3)
En config/routes.rb
, probé ambos:
root :to => ''things#index'', :as => ''things''
y
root :to => ''things#index''
Cuando pulso http://localhost:3000/
, ambos enfoques funcionan, y nada parece ser diferente.
¿Cómo se usa la opción :as
?
Rieles 4 compatibles.
En path_to_your_app/config/routes.rb
get "/profile/edit" => "users#profile_edit", :as => "edit_me"
Desde ruby 2.0 puedes usar:
get "/profile/edit", to: "users#profile_edit", as: "edit_me"
En path_to_your_app/app/views/**in
vista requerida
<%= link_to "Edit profile", edit_me_path %>
No use la match
si no está seguro de que la necesita:
Crea una vulnerabilidad cuando la usas en el siguiente patrón:
match '':controller/:action/:id''
De la documentación:
No debe usar el método de
match
en su enrutador sin especificar un método HTTP. Si desea exponer su acción tanto a GET como a POST, agregue la opción:[:get, :post]
. Si desea exponer su acción a GET, use get in the router:En lugar de:
match "controller#action"
Hacer:
get "controller#action"
Leer más sobre:
Sobre el partido
http://github.com/rails/rails/issues/5964
Acerca de la asignación de rutas
http://apidock.com/rails/v4.0.2/ActionDispatch/Routing/Mapper/Base/match
http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html
Acerca de las rutas en general
http://api.rubyonrails.org/classes/ActionDispatch/Routing.html
La opción :as
crea una ruta con nombre. A continuación, puede invocar esta ruta en sus controladores y vistas (por ejemplo, redirect_to things_path
). Esto no es muy útil para la ruta raíz (como ya se denominó root
), pero es muy útil para las nuevas rutas que agrega.
La opción: as forma una ruta con nombre.
Usualmente se usa en una ruta no raíz. Por ejemplo:
match ''/search'' => ''search#search'', :as => ''search'' # SearchController#search
Entonces podría hacer algo como:
<%= link_to search_path, ''Click Here to Search!'' %>
search_path
y search_url
se definen debido a :as
Para una ruta raíz, realmente no la necesita :as
porque los auxiliares URL root_path
y root_url
están definidos para usted por Rails.