Ich versuche, den Rails-Params-Hash aus einem benutzerdefinierten Rack-Middleware-Objekt einen Wert hinzuzufügen. Mein aktueller Ansatz wird mitAlter Rails Params-Hash von Rack-Middleware
class PortalResolver
def initialize(app)
@app = app
end
def call(env)
begin
url = "#{env['rack.url_scheme']}://#{env['HTTP_HOST']}"
request = Rack::Request.new(env)
portal_id = DomainService.domain(url) # DomainService is returning the expected value
request.params['portal_id'] = portal_id
status, headers, response = @app.call(env)
[status, headers, response]
rescue PortalNotFoundError => e
[403, {'Content-Type' => 'text/html'}, ['']]
end
end
end
ich zur Zeit Hinzufügen der Middleware nach ActionDispatch :: ParamsParser. Die Parameter werden nicht in den Rails-Params-Hashs von einem Controller angezeigt, sondern erscheinen im request.params-Hash (innerhalb des oben definierten Middleware-Objekts). Irgendwelche Ideen? Hilfe sehr geschätzt.
so erstellen Sie ein 'request' Objekt aber dann tun Sie nichts mit ihm? Wie soll das im Controller aussehen? – phoet