2012-08-09 3 views
8

부분이 두 번 렌더링됩니다. 페이지 상단과 예상되는 위치에 두 번 렌더링됩니다. 분명히 ActiveAdmin 관련 코드 (table_for)가있을 때만 발생합니다.부분은 ActiveAdmin에서 두 번 렌더링됩니다.

도움을 주시면 대단히 감사하겠습니다. 아래 코드는 제가 사용하고있는 코드입니다. 내 활성 관리자 파일에서

:

panel "Children - SubProcesses" do 
    text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id) 
    div render :partial => "/admin/process_nodes/child_list", :locals => { :parent => process_node } 
end 

_child_list.html.erb 파일

<%= 
unless parent.children.empty? 
table_for parent.children do 
    column :id 
    column :name 
    column "Actions" do |child_node| 
      text_node link_to "View", admin_process_node_path(child_node) 
      text_node " " 
      text_node link_to "Edit", edit_admin_process_node_path(child_node) 
      text_node " " 
      text_node link_to "Delete", admin_process_node_path(child_node), :method => :delete, :confirm => "Delete?" 
    end 
end 
end 
%> 
+0

은 아마 당신이했던 첫 번째 일은,하지만 당신은 "/ 관리/process_nodes/child_list"실수뿐만 아니라 다른보기에서 부분을 렌더링하는 경우 볼과 같은에 대한 프로젝트를 검색 한? – anxiety

+0

코드에서 직접 또는 간접적으로 패널 메서드가 호출되는 위치는 어디입니까? 호출 된 코드를 인용하십시오. –

답변

5

에서 내가 읽은 바로는이 ActiveAdmin을 자동으로의 경로를 얻을 것이다 부분 모델은 현재 모델/자원 이름을 기반으로합니다. 즉 "child_list"을 전달하면
"/admin/process_nodes/_child_list.html.erb"이됩니다.

사용은이 ActiveAdmin을 패널 블록 내에 unless 문을 포함하는 더 나은 것처럼 보인다, 또한

div render "child_list", :locals { :parent => process_node } 

될 것이다. 그런 다음 하위 프로세스가 없으면 불필요한 렌더 호출을 추가 할 필요가 없습니다.

panel "Children - SubProcesses" do 
    text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id) 

    unless parent.children.empty? 
     div render "child_list", :locals { :parent => process_node } 
    end 
end 

마지막으로, 부분 사용이 큰 이점인지 여부는 알 수 없습니다. 당신이 부분적으로 다른 것을 가지고 있는지 나는 모른다. 그러나 당신은 그것을이 방법으로 쓸 수있다.

panel "Children - SubProcesses" do 
    text_node link_to "New", new_admin_sub_process_node_path(:parent_id => process_node.id) 

    unless parent.children.empty? 
    table_for parent.children do 
     column :id 
     column :name 
     column "Actions" do |child_node| 
     text_node link_to "View", admin_process_node_path(child_node) 
     text_node " " 
     text_node link_to "Edit", edit_admin_process_node_path(child_node) 
     text_node " " 
     text_node link_to "Delete", admin_process_node_path(child_node), :method => :delete, :confirm => "Delete?" 
     end 
    end 
    end 
end