2012-08-09 12 views
8

में दो बार प्रस्तुत किया जाता है मेरा आंशिक दो बार प्रस्तुत किया जा रहा है: पृष्ठ के शीर्ष पर और उस स्थान पर जहां यह माना जाता है। जाहिर है, यह तब होता है जब मेरे पास ActiveAdmin-specific code (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" होगा।

प्रयोग

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

भी हो सकता है, ऐसा लगता है जैसे कि यह बेहतर होगा ActiveAdmin पैनल ब्लॉक के भीतर अपने unless बयान शामिल करने के लिए। यदि कोई उप प्रक्रिया नहीं है तो आपको एक अनावश्यक रेंडर कॉल जोड़ना नहीं होगा।

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 
संबंधित मुद्दे