我需要在主动管理员中实现两个名称空间,并为每个名称空间设置不同的菜单。 我的命名空间运行良好,我使用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/
如果有人知道我错在哪里:)
答案 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
它不是很合适干燥但效果很好