6
votes

Ror montrer des éléments dans deux colonnes

Comment puis-je diviser des éléments d'un modèle en deux morceaux de taille égale de sorte que je puisse leur montrer dans deux colonnes? xxx

split () supprime malheureusement le élément moyen.


1 commentaires

Pourriez-vous être plus précis? Montrez-nous du code! :)


5 Réponses :


1
votes

Consultez Array # in_groups_of

Ceci coupera un tableau dans des morceaux de votre goût.


0 commentaires

0
votes

Une approche consiste à utiliser jQuery. Il y a plusieurs plugins qui peuvent y accomplir pour vous.

Par la suite, après avoir eu les deux morceaux, commencez à remplir un DIV avec le premier groupe, une fois que vous arrivez à la fin, démarrez le deuxième groupe dans une seconde DIV. Ensuite, utilisez CSS pour positionner et stylé les deux divs à côté des autres.


0 commentaires

8
votes

Array # in_groups_of est une extension de base et uniquement disponible dans les rails. Ce qu'il utilise bien, c'est la méthode de chaque_slice.

Vous pouvez l'utiliser comme ceci: P>

["element 1", "element 2", "element 3"]
["element 4", "element 5"]


2 commentaires

Si c'est seulement disponible dans des rails, c'est parfaitement bien.


Nice appel à la vérification de la taille étant> 0. Ce mord moi aujourd'hui, merci!



2
votes

Comme je n'ai besoin que de cela dans des rails, cela a fonctionné pour moi:

>> a = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
>> a.in_groups_of( (a.size/2.0).ceil, false ) if a.size > 0
=> [[1, 2, 3], [4, 5]]


0 commentaires

0
votes

Où essayez-vous de montrer ces éléments?

Si c'est dans une vue, vous ne devez pas modifier votre modèle; Vos modèles devraient rester indépendants de votre présentation.

Si vous souhaitez présenter des résultats sur une page Web, vous devez utiliser HTML et CSS dans votre vue. Même à votre avis, vous n'aurez probablement pas besoin de "diviser" vos éléments en sous-tableaux.

voir Cette page , par exemple. Si vous regardez le code source, les listes sont toutes les suivantes: «l'une après l'autre», sans se fracler en groupes. Les conditions CSS indiquent comment le texte est positionné.


2 commentaires

La page est un mauvais exemple car il ne conduit pas à l'ordre souhaité si vous vous rappelez le bloc de code dans ma question. J'essaie de mettre chaque partie de la matrice dans une variable d'instance qui est ensuite transmise à la vue et affichée. ou y a-t-il une meilleure façon?


Bonjour Patrick, je ne comprends pas pourquoi vous dites que la commande n'est pas conservée. Si vous avez la matrice comme [1,2,3,4], vos éléments HTML seront

  • 1
  • 2
  • 3 etc. Vous aurez seulement Pour réussir cette variable à la vue, et cela le rendra dans deux colonnes à l'aide de CSS. Je ne vois pas besoin de deux variables.