Давайте посмотрим на источник!Обе переменные происходят от использования вспомогательного класса Rack::Request
.Это обеспечивает хороший интерфейс для параметров запроса.Приложениям Rack не обязательно его использовать, но Rails его использует.
Переменные предназначены для внутреннего использования Rack::Request
.rack.request.form_vars
содержит необработанное тело POST, а rack.request.form_hash
содержит проанализированный хеш.ActionDispatch::Request
наследуется от Rack::Request
и получает параметры, используя Rack::Request#POST
, который читает последнюю переменную.Вы можете использовать Rack::Request
самостоятельно, чтобы изменить его.
class YourMiddleware
def initialize(app)
@app = app
end
def call(env)
req = Rack::Request.new(env)
req.POST["authenticity_token"] = "foo"
end
end