В чем разница между request.env ['REQUEST_URI'] и request.env ['REQUEST_PATH']? - PullRequest
17 голосов
/ 04 октября 2009

В чем разница между request.env ['REQUEST_URI'] и request.env ['REQUEST_PATH'] в Rails? Кажется, они всегда содержат одно и то же значение.

Ответы [ 2 ]

27 голосов
/ 04 октября 2009

Я полагаю, что delroth прав насчет различия, однако почти во всех случаях лучше использовать методы в Request, а не прямой доступ к переменным окружения.

request.request_uri возвращает запрашиваемый URL, включая строку запроса и без домена.

request.path возвращает путь запроса безстрока запроса, домен и любой относительный корень (если ваше приложение запускается из каталога, отличного от root).

См. API-интерфейс Rails для ActionDispatch :: Request , чтобы увидеть другие полезные методы.

10 голосов
/ 04 октября 2009

Я считаю, REQUEST_URI также содержит аргументы запроса GET, тогда как REQUEST_PATH - нет. Но я не совсем уверен в этом.

Например:

  • REQUEST_URI = /foo/bar/?x=1&y=2
  • REQUEST_PATH = /foo/bar/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...