为什么我可以在 rails 4 和 rails 5 中使用 request.path,它在哪里记录?

Why can I use request.path in rails4 and rails5, where is it documented?

我想知道为什么我可以在 rails 4 或 rails 5 中使用 request.path,即使它没有记录在 ActionDispatch::Request 中。

logger.info(request)
# returns #<ActionDispatch::Request:0x007f7bf44e22e0>

logger.info(request.path)
# returns /home

这里没有路径方法: http://api.rubyonrails.org/classes/ActionDispatch/Request.html

这个方法是继承自Rack的吗? http://www.rubydoc.info/gems/rack/Rack/Request/Helpers#path-instance_method

Rails ActionDispatch::Request 包括 Rack::Request::Helpers (https://github.com/rails/rails/blob/3f2b7d60a52ffb2ad2d4fcf889c06b631db1946b/actionpack/lib/action_dispatch/http/request.rb#L17)。 所以是的,你是对的。此方法来自Rack.