2

我有一個模型category,其中包含一個名爲category.parent_id的字段,用於創建分類標準(具有子類別的頂級類別)。ActiveAdmin - 如何顯示類別分類? (在樹型層次結構中)

此刻我的索引頁面顯示的類別爲:

Top level category 
Sub category 
Sub category 
Top category 

我怎麼能命令他們在適當的分類(即第一個所有頂級類別是從DB再分類別拍攝等),並顯示如下所示:

Top level category 
-- Sub category 
-- Sub category 
Top category 

回答

3

後撞我的頭靠在牆上的時間,我想出了這個解決方案:

ActiveAdmin可以渲染部分爲整個索引,但是你可以渲染一個爲單個列!

所以周圍的工作是創造像這樣子類別一欄:

column "Sub Categories" do |category| 
     children = Category.children(category.id) 
     if children.present? 
     render :partial => "children", :locals => { :children => children } 
     end 
    end 

然後在_children.html.erb查看部分可以打印出來的名單是這樣的:

<% children.each do |child| %> 
     <p><%= link_to child.name, edit_admin_category_path(child) %></p> 
    <% end %> 
1

你可以在你創建一個這樣的自參考模型的情況下(在app/model/category.rb):

belongs_to :parent, :class_name => 'Category', :foreign_key => 'parent_id' 
has_many :children, :class_name => 'Category', :foreign_key => 'parent_id' 

然後你就可以創建一個作用域爲父母

scope :parents, where("parent_id IS NULL") 

,並考慮可以使用迭代這樣

<ul> 
<% Category.all.parents.each do |parent| %> 
    <li class="parent"><%= link_to parent.name, parent %></li> 
    <% parent.children.each do |child| %> 
      <li class="sub"><%= link_to child.name, child %></li> 
    <% end %> 
<% end %> 
</ul> 

希望這可以幫助你!

//我讀了我想讀的內容......我沒有看到它是關於活動管理員的。認爲它是關於ActiveRecord的-.-

+0

不用擔心 - - 這仍然是我學到的新東西(對於activeadmin我可能需要使用這個)。謝謝! :) – Hopstream

+0

class_name不應該在引號中 – namtax