如何对除了具有某些操作的特定控制器之外的所有控制器使用around_action

时间:2013-12-21 04:49:53

标签: ruby-on-rails

在我的应用程序控制器中,我使用around_action在每个控制器操作中设置时区:

class ApplicationController < ActionController::Base
     around_action :user_time_zone

     def user_time_zone(&block)
        Time.use_zone("Central America", &block)
     end
end

但是在特定的控制器中,我不会将这个时区应用于某些操作,所以我想要这样的东西:

around_action :user_time_zone, except: {controller: "foo" & action: "bar" & action: "other_action"}

有一种方法吗?

1 个答案:

答案 0 :(得分:5)

在您不需要此过滤器的特定控制器中,只需使用'skip_around_filter'跳过它

class FooController < ApplicationController
  skip_around_filter :user_time_zone, :only => [:bar]

end

注意:Rails 3.2.1或更高版本

支持skip_around_filter