在Active Admin上查看特定于命名空间的工厂

时间:2013-01-18 14:31:15

标签: ruby-on-rails namespaces activeadmin factory

我需要在主动管理员中实现两个名称空间,并为每个名称空间设置不同的菜单。 我的命名空间运行良好,我使用view_factory来重新定义我的导航栏,但是当我尝试为特定命名空间设置视图时,会为每个命名空间设置此视图。

ActiveAdmin.setup do |config|
  config.namespace :dashboard do |dashboard|
   dashboard.view_factory.global_navigation = MyNavigation
  end
end

class MyNavigation < ActiveAdmin::Component
  def build menu, options = {}
    # my specific stuff
  end
end

我正在使用Active Admin 0.5.1,它应该使用多个名称空间http://reverbhq.com/blog/2012/08/activeadmin-0-5-0-is-released/

如果有人知道我错在哪里:)

1 个答案:

答案 0 :(得分:0)

刚发现黑客,需要为每个工作区创建一个新的ActiveAdmin :: ViewFactory.new并复制公共视图(不能使用config.view_factory为所有工作区创建...)

ActiveAdmin.setup do |config|
  config.namespace :dashboard do |dashboard|
    dashboard.view_factory = ActiveAdmin::ViewFactory.new
    dashboard.view_factory.global_navigation = MyNavigation
    dashboard.view_factory.footer = CommonFooter
  end
  config.namespace :dashboard do |admin|
    admin.view_factory = ActiveAdmin::ViewFactory.new
    admin.view_factory.footer = CommonFooter
  end
end

它不是很合适干燥但效果很好