10

के साथ टैग मैनिलेट करना मेरे पास एक पोस्ट मॉडल है जिसे मैं ActiveAdmin के माध्यम से एक्सेस कर रहा हूं। यह act_as_taggable_on मणि का उपयोग करके टैग करने योग्य भी है। तो व्यवस्थापक किसी विशिष्ट पोस्ट से टैग जोड़, संपादित या हटा सकता है।act_as_taggable_on और ActiveAdmin

अपने व्यवस्थापक पैनल में संसाधन के लिए टैगिंग कार्यक्षमता जोड़ने के लिए सामान्य तरीके से व्यवस्थापक/posts.rb में ऐसा करने से है:

ActiveAdmin.register Post do 
    form do |f| 
    f.inputs "Details", :multipart => true do 
     f.input :tag_list 
     # and the other irrelevant fields goes here 
    end 

    f.buttons 
    end 
end 

हालांकि, मैं एक बहु का चयन से चयनित टैग करना चाहते हैं फॉर्म फ़ील्ड और टेक्स्ट फ़ील्ड में मैन्युअल रूप से दर्ज नहीं किया जा रहा है (जैसे यह ऊपर दिए गए कोड के साथ है)। इसलिए मैंने यह करने की कोशिश की है:

 f.input :tag_list, :as => :select, 
         :multiple => :true, 
         :collection => ActsAsTaggableOn::Tag.all 

लेकिन यह अपेक्षा के अनुसार काम नहीं करता है। यह वास्तव में नामों के लिए कुछ पूर्णांक मानों के साथ नए टैग बनाता है और उन्हें उस पोस्ट को असाइन करता है। किसी ने मुझे बताया कि काम करने के लिए अतिरिक्त कोड की आवश्यकता है।

यह कैसे किया जाता है इस पर कोई संकेत है? यहां मेरा मॉडल यहां है: http://pastie.org/3911123

अग्रिम धन्यवाद।

:collection => ActsAsTaggableOn::Tag.all 

के बजाय

+0

मैं वही काम करने की कोशिश कर रहा हूं, लेकिन क्योंकि कृत्यों के लिए कृत्यों की आवश्यकता होती है, इसलिए कॉमा द्वारा पृथक स्ट्रिंग की आवश्यकता होती है, इसलिए मुझे बहु-चयन ड्रॉपडाउन देता है कि सरणी को स्वीकार करने के लिए मजबूत पैरामीटर नहीं मिल सकते हैं। आपने इसे कैसे संभाला? – Philip7899

उत्तर

10

स्थापना Tag.all को संग्रह टैग की आईडी के साथ अपने पदों टैग करने के लिए जा रहा है की कोशिश

:collection => ActsAsTaggableOn::Tag.pluck(:name) 

, के बाद से कैसे टैग (डिफ़ॉल्ट रूप से पहचान कर रहे हैं कि जहां पूर्णांक है कि नामों के लिए मूल्य आ रहे हैं)। map(&:name) फ़ॉर्म बिल्डर को इसके बजाय टैग के नाम का उपयोग करने के लिए कहता है।

+4

'ActsAsTaggableOn :: Tag.pluck (: name) 'और भी बेहतर होगा क्योंकि यह नाम निकालने से पहले सभी टैग स्मृति में लोड नहीं करेगा। –