Rails предоставляет именованные маршруты .
Помощник по маршрутам может быть вызван с использованием пути или URL
например, из документов:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
честно говоря, я еще ни разу не пользовался *_url
помощником, смог заставить все работать с помощью *_path
.
Я немного запутался, какова цель этих двух разных помощников?
чем они отличаются друг от друга?
несколько реальных примеров с объяснениями, когда использовать то, что было бы здорово.
источник
Когда вы помещаете ссылку на свой собственный сайт, доменная часть маршрута является избыточной и увеличивает размер страницы, поэтому вы можете просто использовать часть пути URL-адреса с
*_path
помощником. С другой стороны, если URL-адрес будет использоваться за пределами вашего сайта, например, электронная почта или RSS-канал, потребуется весь URL-адрес, поэтому используйте*_url
помощник.источник
Как объясняется в других ответах, вы должны использовать
_url
ссылки в электронной почте и т.д. Но я хотел бы добавить, что вы также должны использовать_url
перенаправления, как описано здесь:https://www.ruby-forum.com/topic/101346#221052
и тут:
http://viget.com/extend/rails- named-routes-path-vs-url
Вы также можете взглянуть на соответствующий раздел спецификации HTTP здесь:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
источник
_path предоставляет относительный путь.
_url предоставляет абсолютный путь.
Всякий раз, когда вы отправляете URL-адрес по электронной почте и т. Д., Рекомендуется использовать _url вместо _path.
источник