Rails fournit des itinéraires nommés .
L'assistant de routes peut être appelé en utilisant le chemin ou l'URL
par exemple à partir de documents:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
franchement, je n'ai encore jamais utilisé *_url
helper, j'ai pu faire fonctionner les choses *_path
.
J'étais un peu confus quel est le but de ces deux aides différentes?
en quoi sont-ils différents les uns des autres?
quelques exemples réels avec des explications sur l'utilisation de ce qui serait génial.
la source
Lorsque vous mettez un lien dans votre propre site, la partie domaine de l'itinéraire est redondante et s'ajoute à la taille de la page, vous pouvez donc simplement utiliser la partie chemin de l'URL avec l'
*_path
assistant. D'autre part, si l'URL doit être consommée en dehors de votre site, par exemple un e-mail ou un flux RSS, l'URL entière est nécessaire, utilisez donc l'*_url
assistant.la source
Comme l'expliquent les autres réponses, vous devriez utiliser
_url
dans les liens de courrier électronique, etc. Mais je voudrais ajouter que vous devriez également utiliser_url
dans les redirections, comme expliqué ici:https://www.ruby-forum.com/topic/101346#221052
et ici:
http://viget.com/extend/rails-named-routes-path-vs-url
Vous pouvez également consulter la section correspondante de la spécification HTTP ici:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
la source
_path fournit un chemin relatif.
_url fournit un chemin absolu.
Chaque fois que vous envoyez une URL dans un e-mail, etc., il est recommandé d'utiliser _url au lieu de _path.
la source