Rails bietet benannte Routen .
Der Routen-Helfer kann über Pfad oder URL aufgerufen werden
zB aus docs:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
Ehrlich gesagt habe ich noch nie einen *_url
Helfer benutzt, ich konnte die Dinge zum Laufen bringen *_path
.
Ich war etwas verwirrt, was der Zweck dieser beiden verschiedenen Helfer ist.
Wie unterscheiden sie sich voneinander?
Einige echte Beispiele mit Erklärungen, wann man das verwendet, was großartig wäre.
quelle
Wenn Sie einen Link in Ihre eigene Site einfügen, ist der Domänenteil der Route redundant und erhöht die Seitengröße, sodass Sie nur den Pfadteil der URL mit dem
*_path
Helfer verwenden können. Wenn die URL jedoch außerhalb Ihrer Website verwendet werden soll, z. B. eine E-Mail oder ein RSS-Feed, wird die gesamte URL benötigt. Verwenden Sie daher den*_url
Helfer.quelle
Wie die anderen Antworten erklären, sollten Sie sie
_url
in E-Mail-Links usw. verwenden. Ich möchte jedoch hinzufügen, dass Sie sie auch_url
in Weiterleitungen verwenden sollten, wie hier erläutert:https://www.ruby-forum.com/topic/101346#221052
und hier:
http://viget.com/extend/rails-named-routes-path-vs-url
Sie können sich hier auch den entsprechenden Abschnitt der HTTP-Spezifikation ansehen:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
quelle
_path liefert einen relativen Pfad.
_url liefert den absoluten Pfad.
Wenn Sie eine URL per E-Mail usw. senden, empfiehlt es sich, _url anstelle von _path zu verwenden.
quelle