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

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

Với Ruby Tôi đang cố chia danh sách thành 4 cột, giới hạn mỗi cột thành 5 cột; tuy nhiên không cắt hoặc tách có vẻ hoạt động. Bất kỳ ý tưởng về những gì tôi có thể làm sai? Bất kỳ trợ giúp nào cũng được đánh giá rất cao.Danh sách chia tách hoặc chia cắt Ruby on Rails thành các cột

Trả lời

10

Bạn có thể muốn sử dụng in_groups_of:

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

Dưới đây là Ryan Bates' sử dụng ví dụ từ railscast rằng:

<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

Cảm ơn @shawn! Điều đó đã làm các trick! – nil

2

Điều gì đó phù hợp với mục đích của bạn sau đây?

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

find_in_batches mang lại từng lô các hồ sơ đã được tìm thấy bằng cách các tùy chọn tìm như một mảng.

+2

này hoạt động, nhưng 'in_groups_of' có lẽ là thích hợp hơn cho nhiệm vụ này. Từ API (bạn liên kết đến): Phương pháp này chỉ nhằm mục đích sử dụng để xử lý hàng loạt số lượng bản ghi lớn không phù hợp với bộ nhớ cùng một lúc. Nếu bạn chỉ cần lặp hơn 1000 bản ghi, có lẽ tốt hơn là chỉ sử dụng các phương pháp tìm thường xuyên. – Mischa

Các vấn đề liên quan