Rails3:没有渲染或重定向的动作

时间:2012-09-11 06:42:54

标签: ruby-on-rails-3.2

基本上我正在尝试做的事情(可能没有意义)是使用没有视图的动作,没有渲染等等。我的想法是,我会有很多动作会执行不同的操作并返回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

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

1 个答案:

答案 0 :(得分:0)

好的,这很简单......我只需要在我的ApplicationController上创建一个类似

的新函数
def after_finish
    if result
        redirect_to ok_page
    else
        redirect_to ko_page
    end
end

并且在没有渲染或重定向的情况下在每个动作上调用该函数,简单易玩!