Railsy zapewniają nazwane trasy .
Pomocnika tras można wywołać za pomocą ścieżki lub adresu URL
np. z dokumentów:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
szczerze mówiąc, nigdy jeszcze nie korzystałem z *_url
pomocnika, mogłem sprawić, że wszystko będzie działać *_path
.
Byłem trochę zdezorientowany, jaki jest cel tych dwóch różnych pomocników?
czym różnią się od siebie?
kilka prawdziwych przykładów z wyjaśnieniami, kiedy użyć tego, co byłoby świetne.
źródło
Kiedy umieścisz łącze we własnej witrynie, część trasy dotycząca domeny jest zbędna i zwiększa rozmiar strony, więc możesz po prostu użyć części adresu URL z
*_path
pomocnikiem. Z drugiej strony, jeśli adres URL ma być używany poza witryną, np. E-mail lub kanał RSS, potrzebny jest cały adres, więc użyj*_url
pomocnika.źródło
Jak wyjaśniają inne odpowiedzi, powinieneś używać
_url
w linkach e-mailowych itp. Ale chciałbym dodać, że powinieneś również używać_url
w przekierowaniach, jak wyjaśniono tutaj:https://www.ruby-forum.com/topic/101346#221052
i tu:
http://viget.com/extend/rails-named-routes-path-vs-url
Możesz również zapoznać się z odpowiednią sekcją specyfikacji HTTP tutaj:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
źródło
_path zapewnia ścieżkę względną.
_url zapewnia ścieżkę bezwzględną.
Za każdym razem, gdy wysyłasz adres URL w e-mailu itp., Najlepiej jest użyć _url zamiast _path.
źródło