2012-03-25 11 views
18

क्या रेलवे में विचार/नियंत्रक में एक प्रकार के एसी और अवरुद्ध क्रियाओं को लागू करने का एक शानदार तरीका है?रेल में क्रमबद्ध या उतरने के लिए सबसे अच्छा तरीका

मेरे पास सामान्य index.html.erb दृश्य है जो कुछ मॉडल के मेरे सभी डेटा सूचीबद्ध करता है और मैं उस कॉलम के आरोही या अवरोही सूची को क्रमबद्ध करने के लिए कुछ छोटे बटन (या शीर्षक क्लिक करने योग्य) जोड़ना चाहता हूं । मैं सोच रहा हूं कि ऐसा करने के लिए एक सुरुचिपूर्ण और कुशल तरीका है या क्या मुझे प्रत्येक कॉलम (या बटन) के लिए एक नया नियंत्रक जोड़ना चाहिए, मैं यह क्रिया करना चाहता हूं।

उत्तर

35

यहां दो उदाहरण हैं जिनका मैं उपयोग कर रहा हूं। @plans वाला पहला वाला स्थान है जहां मैं केवल दशमलव से निम्नतम तक का आदेश देना चाहता हूं। दूसरा उदाहरण थोड़ा और जटिल है जहां मैं उपयोगकर्ता फ़ाइलों को नवीनतम से सबसे पुराना आदेश देना चाहता हूं। मैंने फिर बनाई गई तारीख तक फ़ाइलों को समूहित करने के लिए एक दूसरा चर का उपयोग किया। दोनों उदाहरण जहां नियंत्रकों में प्रदर्शन किया।

@plans = Plan.order("price") 

@files= @user.files.order("id DESC").all 
@dates = @files.group_by { |t| t.created_at } 

अपने विचार में क्लिक करने योग्य बटन के लिए, इस जानकारी को कवर करने वाले रयान बेट्स के रेलस्कास्ट एपिसोड देखें।

http://railscasts.com/episodes/228-sortable-table-columns

+0

धन्यवाद में नाम का उपयोग, मैं railscast aproach – marimaf

+0

इस कोड को देखने के लिए, नियंत्रक या सहायक में लागू किया जाना चाहिए इस्तेमाल किया ? – sqrcompass

+1

'user.files.order करना (आईडी:: desc) 'यदि आप स्थैतिक टाइपिंग कर रहे हैं तो ऐसा करने का सबसे शानदार तरीका है। यदि इसकी गतिशीलता केवल '@ user.files.order ("# {मानदंड} # {दिशा}") करने के लिए बेहतर है, तो – Lomefin

3

मैं हाल ही में एक मणि मामले में अच्छे परिणाम के साथ sorted कहा जाता इस्तेमाल किया आप अपने खुद के बाहर चल के बजाय इस के लिए एक पहले से पैक समाधान का उपयोग करना चाहते हैं।

https://github.com/mynameisrufus/sorted

-1

यहाँ डेटा का संबंध है कि दिखाता है कि हम आदेश स्वीकार

@results = Result.has_pro.ascending(:name).page(params[:page]) 
संबंधित मुद्दे