仅在命名空间过滤之前的活动管理

时间:2013-08-23 18:48:04

标签: ruby-on-rails ruby-on-rails-3 activeadmin

我有一个名称空间admin。我想仅将before_filter应用于此命名空间(而不是默认值superuser)。

我可以在active_admin.rb

中添加以下代码
ns.before_filter :is_subscribed?

但是,superuser也获得了过滤器。

我尝试在命名空间配置中添加before_filter

config.namespace :admin do |ns|
  ...
  ns.before_filter :is_subscribed?
end

但是Rails会抛出错误:

undefined method `before_filter' for #<ActiveAdmin::Namespace:0x007fa2e0f75f00>

2 个答案:

答案 0 :(得分:1)

您可以添加一个带有before_filter的控制器,然后在该命名空间中的所有控制器中继承该控制器吗?

IE中。 AdminBaseController。

答案 1 :(得分:0)

我在admin目录中有一个文件active_admin_extension.rb,内容如下:

module ActiveAdmin
  class BaseController
    before_filter :make_sure_something

    private
    def make_sure_something
      if active_admin_namespace.name == :my_desired_namespace && !something_there
         #do something here
      end
    end
  end
end