попробуйте использовать
@connections_label = @connections.group("label_id").limit(3).offset((params[page] || 0) * 3)
или вы можете
@connection_labels = @connections.user_contacts.group(:label_id).map(&:label).uniq
@labels_separated_by_3 = []
@connection_labels.each_with_index do |cl, index|
@labels_separated_by_3[index / 3] ||= []
@labels_separated_by_3[index / 3] << cl
end
и вы получите массив массивов с метками. как это:
1.9.2-p290 :033 > @connection_labels = ['a','a','a','b','b','b','c','c']
1.9.2-p290 :034 > @labels_separated_by_3 = []
=> []
1.9.2-p290 :035 > @connection_labels.each_with_index do |cl, index|
1.9.2-p290 :036 > @labels_separated_by_3[index / 3] ||= []
1.9.2-p290 :037?> @labels_separated_by_3[index / 3] << cl
1.9.2-p290 :038?> end
=> ["a", "a", "a", "b", "b", "b", "c", "c"]
1.9.2-p290 :039 > @labels_separated_by_3
=> [["a", "a", "a"], ["b", "b", "b"], ["c", "c"]]