我有一个Rails中间件堆栈,我在ActionDispatch之外有一块MW。理想情况下,我想通过触发一个 internal 的URL(不能通过常用的URL路由访问)来使用ActionDispatch呈现页面 - 类似于Devise呈现它的方式" auth failed& #34;页面。最好的方法是按名称在应用程序中触发一个特定的控制器操作,并返回它的渲染结果(甚至不在路径中)。
这样做的标准,现代方式是什么?
更新:
def call(env)
if user_from_env(env).free_accout?
InterestingPagesController.action(:how_to_signup).call(env)
else
@app.call(env)
end
end
答案 0 :(得分:1)
您可以使用controller.action将控制器操作作为Rack端点返回,然后使用endpoint.call()或endpoint []调用端点。