【问题标题】:Extending Active Admin views in Rails Engine在 Rails Engine 中扩展 Active Admin 视图
【发布时间】:2015-09-10 17:44:18
【问题描述】:

我已经在我的主应用程序中安装了我的 Active Admin gem,并在我刚刚创建的“引擎”目录中设置了一个可挂载引擎。

我想在我的引擎中调整我的主应用的 ActiveAdmin 视图,以便能够添加特定的链接和内容。

我的引擎有自己的命名空间(为简单起见,我们称之为 MyOwnEngine)。

我在引擎的“lib/admin”目录中创建了一个“activeadmin_components.rb”文件,并添加了这个:

module MyOwnEngine
    module ActiveAdmin
        module Views
           class Header < ::ActiveAdmin::Component

           def build(namespace, menu)
               super(:id => "header")
               # stuff is done here...nothing that matters, really...
               build_site_title
           end

           def build_site_title
                render "admin/parts/myenginespecificpart" 
           end
        end
    end
end

这存在于 MyOwnEngine 命名空间中,但从不显示,这些自定义不会覆盖主应用中编写的自定义

如果我删除命名空间(模块 MyOwnEngine 部分),那么在我的引擎中编写的自定义项会覆盖我的主应用程序中的自定义项。

如果我点击 http://whatever/app,我希望显示我的应用程序的 Active Admin 视图,如果我点击 http://whatever/engine,我希望我的应用程序的 Active Admin 视图+我在其中完成的自定义我的引擎,但我做不到。

我知道这一定是与命名空间相关的问题,而且肯定是微不足道的,但我现在不知道是什么。

感谢任何帮助。谢谢。

【问题讨论】:

  • 我真的很想获得类似的行为

标签: ruby-on-rails activeadmin


【解决方案1】:

你可以做的是这样的:

require "active_admin/views/header"
module ActiveAdmin
  module Views
    class Header < ::ActiveAdmin::Component

      def build(namespace, menu)
        super(:id => "header")

        if namespace.name == "namespace to hack"
          # stuff is done here...nothing that matters, really...
          build_my_site_title
        else
          @namespace = namespace
          @menu = menu
          @utility_menu = @namespace.fetch_menu(:utility_navigation)

          build_site_title
          build_global_navigation
          build_utility_navigation
        end
      end

      def build_my_site_title
        render "admin/parts/myenginespecificpart"
      end
    end
end

【讨论】:

  • 感谢 Timo,这对我来说看起来很 hacky,但我还是这样做了,等待天知道什么时候有更好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多