2013-06-24 3 views
0

Я пытаюсь найти способ отображения массива в Rails смотреть следующим образом:Рубин на Rails изменения порядка отображения массива

[ 1 ] [ 4 ] [ 7 ] [ 10 ] 
[ 2 ] [ 5 ] [ 8 ] [ 11 ] 
[ 3 ] [ 6 ] [ 9 ] [ 12 ] 

В мой контроллер, я массив определяется как

def index 
@myArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 
end 

Поскольку этот порядок отображения не является типичным для таблицы, я не уверен, как это сделать.

Я хотел бы знать следующее:

  1. Каков наилучший способ отображения значений (выше) в таблице на моем Rails просмотра страницы, используя порядок, в котором я просил в коде? Просто зацикливание по @myArr с <tr> и <td> приводит следующее:

    [ 1 ] [ 2 ] [ 3 ] [ 4 ] 
    [ 5 ] [ 6 ] [ 7 ] [ 8 ] 
    [ 9 ] [ 10 ] [ 11 ] [ 12 ] 
    

Заранее спасибо за вашу помощь!

ответ

3

Если вы хотите сделать это в Ruby, то:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].each_slice(3).to_a.transpose.flatten 
# => [1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 12] 

Но я бы не сделать это таким образом. Для этого я использовал бы свойства CSS3 flexbox.

+2

Sawa, можете ли вы рассказать о том, как вы это сделаете с помощью свойств CSS3? Заранее спасибо. я ценю это –