gpt4 book ai didi

ruby-on-rails - 在 Rails 中使用 Active Admin gem 时如何删除面包屑?

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:48 25 4
gpt4 key购买 nike

我一直在使用 Active admin gem,并希望从 Admin 仪表板中删除 breadcrumbs。为了实现这一点,我提到了 this blog自定义 TitleBar

我做了以下步骤:

  1. 创建了我自己的类 MyTitleBar 并从 active_admin/views/title_bar.rb 复制了 TitleBar 类的内容.
  2. 删除了 build_titlebar_left 方法中的 build_breadcrumb 行。
  3. 删除了整个方法 build_breadcrumb
  4. 将事件管理配置更新为:

    config.view_factory.title_bar = MyTitleBar

这很好用。

我的问题:

  1. 这是实现上述任务的正确方法吗?
  2. 另外,有什么方法可以删除breadcrumbs model-wise?

最佳答案

虽然该解决方案可能有效,但肯定不理想。我注意到查看 ActiveAdmin gem,它们是 breadcrumb 的配置选项:

ActiveAdmin.register Post do

breadcrumb do
[
link_to('my piece', '/my/link/to/piece')
]
end
end

看起来它需要一个代码块,它返回到一个links 变量。看着TitleBar::build_breadcrumb ,如果未定义此配置选项,它只是将 links 设置为 breadcrumb_links() 的结果。最后,如果存在某种类型的链接数组,则会将其格式化以供打印。否则,该方法不返回任何内容。

因此,要解决您的问题,请尝试编写一个返回 nil 或空值的代码块。我还没有测试过这个,但是按照下面的代码块进行了一些测试。这个想法是,如果你输入变量 nil,它不应该通过 links.present? 测试并且应该立即返回,而不是构建不需要的面包屑 HTML。或者,一个空数组应该符合它期望的类型,但没有任何项目则不应显示任何内容。我需要在本地进行测试,看看哪个在前端效果更好。

/config/initializers/active_admin.rb:

# Return a Proc that simply returns an empty array
config.breadcrumb = Proc.new{ [] }

关于ruby-on-rails - 在 Rails 中使用 Active Admin gem 时如何删除面包屑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21214581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com