2013-05-04 8 views
5
@locations = Location.all #current listing all 

@locations = Location.slice(5) or Location.split(5) 

रुबी के साथ मैं अपनी सूची को 4 कॉलम में विभाजित करने की कोशिश कर रहा हूं, प्रत्येक कॉलम को 5 प्रत्येक तक सीमित कर रहा हूं; हालांकि न तो स्लाइसिंग या विभाजन काम करना प्रतीत होता है। क्या मैं गलत कर रहा हूँ के बारे में कोई विचार? कोई भी मदद बहुत ही सराहनीय होगी।कॉल पर स्पिली विभाजन या स्लाइसिंग सूची पर रूबी

उत्तर

10

आप शायद in_groups_of उपयोग करना चाहते हैं

<table> 
<% @tasks.in_groups_of(4, false) do |row_tasks| %> 
    <tr> 
    <% for task in row_tasks %> 
     <td><%= task.name %></td> 
    <% end %> 
    </tr> 
<% end %> 
</table> 
+0

धन्यवाद @ शॉन! वह चाल है! – nil

2

क्या आपके उद्देश्यों के अनुरूप निम्नलिखित कुछ चाहिए?

Location.find_in_batches(batch_size: 5) do |group| 
    # code to work with these 5 elements 
end 

find_in_batches रिकॉर्ड के प्रत्येक बैच कि एक सरणी के रूप में ढूंढ़ने के विकल्प से मिला था अर्जित करता है।

http://railscasts.com/episodes/28-in-groups-of

यहाँ कि railscast से रयान बेट्स 'उदाहरण के उपयोग है::

+2

यह काम करता है, लेकिन 'in_groups_of' शायद और अधिक के लिए उपयुक्त है ये कार्य। एपीआई से (आप लिंक): इस विधि का उद्देश्य केवल बड़ी मात्रा में रिकॉर्ड की बैच प्रोसेसिंग के लिए उपयोग करना है जो स्मृति में फिट नहीं होगा। यदि आपको 1000 से कम रिकॉर्ड्स पर लूप की आवश्यकता है, तो शायद नियमित खोज विधियों का उपयोग करना बेहतर होगा। – Mischa

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