В чем разница между request.env ['REQUEST_URI'] и request.env ['REQUEST_PATH'] в Rails? Кажется, что они всегда содержат одинаковое значение.
Какая разница между request.env ['REQUEST_URI'] и request.env ['REQUEST_PATH']?
Ответ 1
Я считаю, что delroth правильно относится к различию, однако почти во всех случаях лучше использовать методы в Request вместо прямого доступа к переменным среды.
request.request_uri возвращает запрошенный url, включая строку запроса и без домена.
request.path возвращает путь запроса без строки запроса, домена и любого относительного корня (если ваше приложение работает из каталога, отличного от root).
Обратитесь к API Rails для ActionDispatch:: Request, чтобы увидеть другие полезные методы.
Ответ 2
Я полагаю, что REQUEST_URI
также содержит аргументы запроса GET, тогда как REQUEST_PATH
нет. Но я не совсем уверен в этом.
Например:
-
REQUEST_URI = /foo/bar/?x=1&y=2
-
REQUEST_PATH = /foo/bar/