2012-10-19 12 views
5

के साथ अभिभावक द्वारा चेकबॉक्स कैसे समूहबद्ध करूं यह श्रेणी मॉडल है। एक श्रेणी किसी अन्य श्रेणी से संबंधित हो सकती है।मैं एक्टिव एडमिन (फॉर्मेटास्टिक)

class Category < ActiveRecord::Base 
    attr_accessible :title, :parent_id 

    has_and_belongs_to_many :products, :join_table => :products_categories 

    belongs_to :parent, :foreign_key => "parent_id", :class_name => "Category" 
    has_many :categories, :foreign_key => "parent_id", :class_name => "Category" 
end 

यह उत्पाद मॉडल है:

class Product < ActiveRecord::Base 
    attr_accessible :comment, location_id, :category_ids 
    has_and_belongs_to_many :categories, :join_table => :products_categories 
    belongs_to :location 
end 

एक उत्पाद के लिए सक्रिय व्यवस्थापक रूप में मैं चाहता हूँ पदानुक्रम उनके PARENT_ID उदा के आधार पर चेक बॉक्स ऑर्डर करने के लिए

  • श्रेणी 1 []
    • श्रेणी 2 []
    • श्रेणी 3 []
  • श्रेणी 6 []
    • श्रेणी 4 []
  • श्रेणी 5 []
  • श्रेणी 7 []

नीचे जहाँ तक मैं फार्म के साथ मिल गया है है:

ActiveAdmin.register Product do 
    form do |f| 
     f.inputs "Product" do 
     f.input :comment 
     f.input :categories, :as => :check_boxes 
     f.input :location 
    end 
    f.buttons 
    end 
end 

वर्तमान प्रपत्र चेक बॉक्स में खींचती है और सही ढंग से डेटा की बचत होती है लेकिन मुझे यकीन नहीं कर रहा हूँ उन्हें समूहित करने के साथ कहां से शुरू करें। मैंने प्रलेखन को देखा लेकिन कुछ भी स्पष्ट नहीं देख सका।

उत्तर

1

यह उपयोगकर्ता होपस्ट्रीम के ActiveAdmin -- How to display category taxonomy? (in tree type hierarchy) प्रश्न द्वारा भाग में हो सकता है। यह कुछ दिलचस्प चुनौतियों को प्रस्तुत करने के लिए फॉर्मेटास्टिक की वजह से काफी अलग है, अर्थात् फॉर्मेटास्टिक सीधे यह "बॉक्स से बाहर" नहीं कर सकता है।

घोंसले तर्क के माध्यम से नूडल की क्षमता जोड़ने के लिए फॉर्मेटास्टिक के Formtastic::Inputs::CheckBoxesInput कक्षा को विस्तारित और ओवरराइड करना संभव है। सौभाग्य से, यह समस्या किसी और के लिए पहले ही हो चुकी है।

Github उपयोगकर्ता माइकेलसन के Formtastic check boxes with awesome_nested_set सार एक वर्ग है, जो वास्तव काम करना चाहिए आप अपने रेल एप्लिकेशन को जोड़ सकते हैं, अपने ActiveAdmin.register ब्लॉक के भीतर अपने Product मॉडल में acts_as_nested_set लाइन और Formtastic f.inputs "Product" ब्लॉक के लिए आवश्यक f.input लाइन रखने के साथ प्रदान करेगा के रूप में अपने मॉडल की संरचना से असंशोधित:

f.input :categories, :as=>:check_boxes, :collection=>Category.where(["parent_id is NULL"]) , :nested_set=>true

+0

यह मेरे लिए प्रतीत होता है कि यह एक बार बार होने वाली समस्या नहीं हो सकता। यह कुछ परीक्षणों के साथ वास्तविक 'फॉर्मेटैस्टिक :: इनपुट :: चेकबॉक्सक्स इनपुट' बेस क्लास में इन परिवर्तनों के साथ https://github.com/justinfrench/formtastic पर पुल अनुरोध प्राप्त करने के लिए किसी से व्यवहार कर सकता है। अगर मेरे पास समय हो, तो शायद मैं कई हफ्तों तक नहीं रहूंगा जब तक कि मुझे कुछ मुफ्त न मिल जाए। – jimcavoli

संबंधित मुद्दे