Rails中request.env ['REQUEST_URI']和request.env ['REQUEST_PATH']有什么区别?它们似乎总是包含相同的值。
答案 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/