1

基本上我想要做的(它可能没有意义)是使用没有视图的动作,没有渲染等等。这个想法是我会有很多动作来执行不同的操作并返回 OK 或 KO,当 OK 时我将重定向到我的 OK 页面,当 KO 时我将重定向到 KO 页面。

当然,我可以在操作中处理这些重定向,但是由于我所有的操作都将共享重定向,我想在一些继承自 ActionController 的 ApplicationController 内的环绕过滤器中处理它,例如

around_filter :my_filter
def around_filter
    check same stuff for all the actions
    return = yield
    if return == ok
        redirect_to ok_page
    else
       redirect to ko_page
      end
end

但是我当然会遇到双重渲染错误或缺少模板错误,因为我无法在没有任何视图的情况下保持操作。所以问题......有没有办法做到这一点?只在一个地方处理所有重定向?

4

1 回答 1

0

好的,这很容易......我只需要在我的 ApplicationController 上创建一个新函数,比如

def after_finish
    if result
        redirect_to ok_page
    else
        redirect_to ko_page
    end
end

并在没有渲染或重定向之前在每个动作上调用该函数,很容易!

于 2012-09-12T09:56:13.513 回答