ruby on rails - route - Rutas con nombre_path vs_url
routes ror (5)
Como dice Fernando here , usaría url siempre "te ahorrará muchos dolores de cabeza" si algún día usas https .
No recuerdo exactamente por qué ni cuándo ... tal vez con enlaces remotos, pero recuerdo que la solución estaba en cambio _path
for _url
Rails proporciona rutas con nombre .
El asistente de rutas se puede llamar usando ruta o URL
por ejemplo, desde documentos:
# and provide these named routes
root_url # => ''http://www.example.com/''
root_path # => ''/''
Hablando francamente, 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?
¿cómo son diferentes el uno del otro?
algunos ejemplos reales con explicaciones sobre cuándo usar lo que sería genial.
Como explican las otras respuestas, debe usar _url
en los enlaces de correo electrónico, etc. Pero me gustaría agregar que también debe usar _url
en los redireccionamientos, tal 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 consultar la sección relevante de la especificación HTTP aquí:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
Cuando coloca un enlace en su propio sitio, la parte del dominio de la ruta es redundante y se agrega al tamaño de la página, por lo que solo puede usar la parte de la ruta de la URL con el *_path
. 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 toda la URL, por lo tanto, use el *_url
helper.
_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 usar _url en lugar de _path.
_path
helpers proporciona una ruta relativa al sitio raíz. Probablemente deberías usar esto la mayor parte del tiempo.
_url
helpers proporciona una ruta absoluta, incluido el protocolo y el nombre del servidor. Descubrí que principalmente los uso en correos electrónicos cuando creo enlaces a la aplicación en el servidor. Deben usarse principalmente cuando se proporcionan enlaces para uso externo. (Piense en enlaces de correo electrónico, RSS y cosas como el campo copiar y pegar URL en la sección "Compartir" de un video de YouTube).