request.env ['REQUEST_URI']和request.env ['REQUEST_PATH']之间有什么区别?

时间:2009-10-03 23:17:59

标签: ruby-on-rails

Rails中request.env ['REQUEST_URI']和request.env ['REQUEST_PATH']有什么区别?它们似乎总是包含相同的值。

2 个答案:

答案 0 :(得分:27)

我相信delroth对这种区别是正确的,但是几乎在所有情况下最好使用Request中的方法而不是直接访问环境变量。

request.request_uri 会返回包含查询字符串且没有域名的请求网址。

request.path 返回请求的路径,不包含查询字符串,域和任何相对根(如果您的应用程序从除root之外的目录运行)。

请参阅ActionDispatch::Request的Rails API以查看其他有用的方法。

答案 1 :(得分:10)

我相信REQUEST_URI也包含查询GET参数,而REQUEST_PATH则不包含。REQUEST_URI = /foo/bar/?x=1&y=2。但我并不完全确定。

例如:

  • REQUEST_PATH = /foo/bar/
  • {{1}}