我有一个 Rails 中间件堆栈,并且我在 ActionDispatch 之外有一块 MW。理想情况下,我想通过触发内部URL (无法通过通常的 URL 路由访问)来使用 ActionDispatch 呈现页面 - 类似于 Devise 呈现“身份验证失败”页面的方式。最好的办法是只在应用程序中按名称触发一个特定的控制器操作,并返回它的渲染结果(甚至没有在路由中)。
这样做的标准现代方式是什么?
更新:
def call(env)
if user_from_env(env).free_accout?
InterestingPagesController.action(:how_to_signup).call(env)
else
@app.call(env)
end
end