2013-08-07 4 views
2

최소한으로 인덱스 테이블에서 들여 쓰기를하고 싶습니다. 이처럼 :ActiveAdmin에서 closure_tree를 표시하지 않습니다. hierarhical보기를 만드는 방법?

ActiveAdmin.register Section do 
    config.filters = false 

    index do 
    column :name do |s| 
     " #{ "――" * s.depth } #{s.name}" 
    end 
    default_actions 
    end 

    controller do 
    def collection 
     Section.some_method_to_get_things_in_right_order 
    end 
    end 
end 

그것은 액티브 레코드 관계를 반환 some_method 할 필요가 있어요,하지만 난 성공하지 않은 :

+Parent 
+--Child 
    +--Child of Child 
+--Child 

그래서 나는 다음 만듭니다. 그리고 this hacky way로 끝났습니다.

+0

당신은 어떤 고급 솔루션으로있으세요 (< 교체 ..> 당신의 값을 레일> 4 가정) ? BTW라는 메서드를 사용하여 일반 해시 트리를 할 수 있습니다 :'hash_tree_scope' –

+0

불행히도, 아니. 요점에 노출 된 코드를 계속 사용하겠습니다. 누군가가 능동적 인 관리자의 계층 적 데이터 표현을위한 모든 해결책을 지적한다면 그것은 훌륭 할 것입니다. – Astery

답변

2

sortable_tree activeadmin 플러그인은 폐쇄 트리를 사용하면 잘 작동합니다.

https://github.com/zorab47/active_admin-sortable_tree

그것은 간단한 계층과 정렬 뷰를 생성한다.

그냥 당신의 트리 모델 리소스에 다음을 넣어 (응용 프로그램/관리 /하는 TreeModel) : 는

ActiveAdmin.register TreeModel do 

config.filters = false # the default filters don't work unfortunately 
permit_params <YOUR_TREE_MODEL_ATTRIBUTES> 

sortable tree: true, 
       sorting_attribute: :<YOUR_SORT_ATTRIBUTE>, 
       parent_method: :parent, 
       children_method: :children, 
       roots_method: :roots 

index :as => :sortable do 
    label :name # item content 
     actions 
    end 

end