2012-08-22 14 views
5

मेरे पास acts_as_list के साथ एकीकृत मॉडल है। हालांकि, डिफ़ॉल्ट रूप से बनाई गई नई वस्तुओं को सूची के अंत में जोड़ा गया है। से नए आइटम जोड़ने का कोई डिफ़ॉल्ट तरीका है?किसी सूची की शुरुआत में नए आइटम जोड़ने के लिए रेल की act_as_list कैसे प्राप्त करें?

धन्यवाद!

उत्तर

3

आप सूची आइटम को शुरू करने के तरीके को बदल सकते हैं। todo_items के क्रम को प्रभावी ढंग से पूरा करता है।

has_many :todo_items, :order => "position ASC"

अन्यथा, शायद आप position स्तंभ वस्तुओं पर मैन्युअल रूप से एक after_create में सेट कर सकते हैं।

+0

इस धारणा के तहत तोड़ सकता ओपी खींचें किसी तरह का है कि और उनके अनुप्रयोग में ड्रॉप पुनर्व्यवस्था। यह सभी वस्तुओं को उनकी इंडेक्स स्थिति के अनुसार आईडी की सरणी में पुन: व्यवस्थित करने का प्रयास करेगा। बस ऐसा कुछ जिसके बारे में अवगत होना चाहिए। –

8

add_new_at विन्यास विकल्प का उपयोग करने का प्रयास करें:

acts_as_list scope: :todo, add_new_at: :top 
+0

यह सुनिश्चित करने के लिए सही जवाब है। – Miguelgraz

+0

यह सबसे अच्छा जवाब है। मैंने कॉलम डिफ़ॉल्ट विधि के बारे में अपना उत्तर हटा दिया क्योंकि यह अब काम नहीं करता है। –

+1

@ युवाल आपको यह जवाब स्वीकार करना चाहिए क्योंकि यह अभी भी मान्य है, और यह आधिकारिक विधि है। –

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