修改activeadmin模块以隐藏面包屑

时间:2014-02-12 15:11:09

标签: ruby-on-rails activeadmin

在链接的belongs_to上,Active Admin存在一些问题。除其他外,它会导致面包屑有时显示错误的链接。

我希望通过修改初始化程序中的活动管理面包屑帮助程序,找到一种简单地将面包屑隐藏在某些(但不是全部)页面上的方法。 F ex:

module ActiveAdmin
 module ViewHelpers
  module BreadcrumbHelper


    def breadcrumb_links(path = request.path)
      if @hidebread 
        false
      else
        parts = path[1..-1].split('/') # remove leading "/" and split up the URL
        parts.pop                      # remove last since it's used as the page title

        parts.each_with_index.map do |part, index|
          # 1. try using `display_name` if we can locate a DB object
          # 2. try using the model name translation
          # 3. default to calling `titlecase` on the URL fragment
          if part =~ /\A(\d+|[a-f0-9]{24})\z/ && parts[index-1]
            parent = active_admin_config.belongs_to_config.try :target
            config = parent && parent.resource_name.route_key == parts[index-1] ? parent : active_admin_config
            name   = display_name config.find_resource part
          end
          name ||= I18n.t "activerecord.models.#{part.singularize}", :count => ActiveAdmin::Helpers::I18n::PLURAL_MANY_COUNT, :default => part.titlecase

          link_to name, '/' + parts[0..index].join('/')
        end
      end

    end

  end
 end
end

但这会给出错误“未初始化的常量ActiveAdmin :: Helpers :: I18n”。理解如何解决这个问题可能会超出我的Rails技能。有没有办法解决这个问题,或者有办法在模块上调用类似“超级”的东西,以便我可以做类似的事情

    def breadcrumb_links(path = request.path)
      if @hidebread 
        false
      else
        super
      end
    end

1 个答案:

答案 0 :(得分:5)

大约2.5周前,它刚刚添加到最新版本的ActiveAdmin中。

# Gemfile
gem 'activeadmin', github: 'gregbell/active_admin'

# app/admin/my_model.rb
ActiveAdmin.register MyModel do
  config.breadcrumb = false
end