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? split () code> supprime malheureusement le élément moyen. p> p>
5 Réponses :
Consultez Array # in_groups_of p>
Ceci coupera un tableau dans des morceaux de votre goût. P>
Une approche consiste à utiliser jQuery. Il y a plusieurs plugins qui peuvent y accomplir pour vous. P>
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. P>
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"]
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!
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]]
Où essayez-vous de montrer ces éléments? P>
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. P>
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. P>
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é. P>
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
Pourriez-vous être plus précis? Montrez-nous du code! :)