O Rails fornece rotas nomeadas .
O auxiliar de rotas pode ser chamado usando o caminho ou url
por exemplo, de documentos:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
falando francamente, eu nunca usei o *_url
helper ainda, consegui fazer as coisas funcionarem usando *_path
.
Fiquei um pouco confuso qual é o propósito desses dois ajudantes diferentes?
como eles são diferentes um do outro?
alguns exemplos reais com explicações de quando usar o que seria ótimo.
fonte
Quando você coloca um link em seu próprio site, a parte do domínio da rota é redundante e aumenta o tamanho da página, portanto, você pode usar apenas a parte do caminho da URL com o
*_path
auxiliar. Por outro lado, se a URL for consumida fora do seu site, por exemplo, um e-mail ou feed RSS, a URL inteira será necessária, portanto, use o*_url
auxiliar.fonte
Como explicam as outras respostas, você deve usar
_url
em links de e-mail, etc. Mas gostaria de acrescentar que você também deve usar_url
em redirecionamentos, conforme explicado aqui:https://www.ruby-forum.com/topic/101346#221052
e aqui:
http://viget.com/extend/rails-named-routes-path-vs-url
Você também pode dar uma olhada na seção relevante da especificação HTTP aqui:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
fonte
_path fornece um caminho relativo.
_url fornece um caminho absoluto.
Sempre que você envia uma URL por email, etc., é uma prática recomendada usar _url em vez de _path.
fonte