簡體   English   中英

如何在Rails中使用Active Admin gem時刪除面包屑?

[英]How to remove the breadcrumbs while using Active Admin gem in Rails?

我一直在使用Active admin gem,並希望從Admin儀表板中刪除breadcrumbs 為了達到這個目的,我引用了這個博客來自定義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

雖然這個解決方案可行,但肯定不太理想。 我注意到看看ActiveAdmin gem它們是breadcrumb的配置選項:

ActiveAdmin.register Post do

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

它看起來像需要一個代碼塊,它返回到一個links變量。 查看TitleBar :: build_breadcrumb ,如果未定義此配置選項, 則只設置指向breadcrumb_links()結果的links 最后,如果存在某種類型的鏈接數組,則將其格式化以進行打印。 否則,該方法不返回任何內容。

因此,要解決您的問題,請嘗試編寫返回nil或空的代碼塊。 我沒有對此進行過測試,但是下面的代碼塊也是如此。 這個想法是,如果你輸入變量nil,它不應該通過links.present? 測試並應立即返回,而不是構建不需要的breadcrumb HTML。 或者,一個空數組應該符合它所期望的類型,但是沒有任何項目都不應該顯示。 我需要在本地測試,看看哪個在前端工作得更好。

/config/initializers/active_admin.rb

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM