2011-07-18 3 views
-1

Je voudrais ajouter 7 cases à cocher (valeurs booléennes) à l'un de mes modèles.cases à cocher sérialisées dans Rails

Existe-t-il un moyen de créer quelque chose comme un tableau de booléens dans ma base de données, au lieu d'ajouter 7 colonnes différentes à la main?

Oh j'utilise la base de données pg

Répondre

1

Selon quelle fréquence voulez-vous les bool à modifier (sous une forme ajax etc.). Vous feriez mieux de rester avec des colonnes individuelles. Simplement parce que le f.check_box: column_name contre f.object.column_name.each_pair ... La situation similaire dans le contrôleur lors de leur publication dans. Seulement une bonne raison que je peux penser à ajouter des cases à cocher sérialisé 7 dans un hachage et les stocker dans une colonne est si vos 7 cases à cocher peuvent être changées dynamiquement et tel.

0

Oui.

CREATE TABLE array_test (
    bools bool[] 
); 

Je ne recommande pas cette approche. Habituellement, vous êtes mieux avec une table de mappage ou plusieurs colonnes pour des raisons d'indexation, de clarté sémantique et d'application de l'intégrité des données. Cependant, si vous pesez cela, je suppose que vous connaissez les dangers, sinon vous apprendrez votre leçon. Il y a quelques rares cas où cela a du sens cependant ....