Rails proporciona rutas con nombre .
Se puede llamar al ayudante de rutas usando la ruta o la URL
por ejemplo, de documentos:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
francamente hablando, nunca he usado *_url
helper todavía, pude hacer que las cosas funcionen usando *_path
.
Estaba un poco confundido ¿cuál es el propósito de estos dos ayudantes diferentes?
¿en qué se diferencian entre sí?
algunos ejemplos reales con explicaciones de cuándo usar lo que sería genial.
fuente
Cuando coloca un enlace en su propio sitio, la parte del dominio de la ruta es redundante y aumenta el tamaño de la página, por lo que puede usar la parte de la ruta de la URL con el
*_path
ayudante. Por otro lado, si la URL se va a consumir fuera de su sitio, por ejemplo, un correo electrónico o una fuente RSS, se necesita la URL completa, así que use el*_url
asistente.fuente
Como explican las otras respuestas, debe usar
_url
en enlaces de correo electrónico, etc. Pero me gustaría agregar que también debe usar_url
en redirecciones, como se explica aquí:https://www.ruby-forum.com/topic/101346#221052
y aquí:
http://viget.com/extend/rails-named-routes-path-vs-url
También puede echar un vistazo a la sección relevante de la especificación HTTP aquí:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
fuente
_path proporciona una ruta relativa.
_url proporciona una ruta absoluta.
Siempre que envíe una URL en un correo electrónico, etc., es una buena práctica utilizar _url en lugar de _path.
fuente