【发布时间】:2009-10-03 23:17:59
【问题描述】:
Rails 中的 request.env['REQUEST_URI'] 和 request.env['REQUEST_PATH'] 有什么区别?它们似乎总是包含相同的值。
【问题讨论】:
标签: ruby-on-rails
Rails 中的 request.env['REQUEST_URI'] 和 request.env['REQUEST_PATH'] 有什么区别?它们似乎总是包含相同的值。
【问题讨论】:
标签: ruby-on-rails
我相信 delroth 关于区别是正确的,但是在几乎所有情况下,最好使用 Request 中的方法而不是直接访问环境变量。
request.request_uri 返回请求的 url,包括查询字符串,不包括域。
request.path 返回请求的路径,不包括查询字符串、域和任何相对根目录(如果您的应用从根目录以外的目录运行)。
查看ActionDispatch::Request 的 Rails API 以查看其他有用的方法。
【讨论】:
request.original_fullpath
我相信 REQUEST_URI 还包含查询 GET 参数,而 REQUEST_PATH 不包含。但我并不完全确定。
例如:
REQUEST_URI = /foo/bar/?x=1&y=2REQUEST_PATH = /foo/bar/【讨论】: