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 *_urlhelper 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
*_pathayudante. 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*_urlasistente.fuente
Como explican las otras respuestas, debe usar
_urlen enlaces de correo electrónico, etc. Pero me gustaría agregar que también debe usar_urlen 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