Quelle est la meilleure façon de mettre en place un champ de genre dans les rails 3? J'utilise PostgreSQL. P>
Je l'ai actuellement en tant que chaîne, mais je me demande si ce serait plus facile (mieux?) Pour le configurer en tant qu'oeur entier. Si oui, comment cela serait-il fait? Je veux produire une descente pour cela, dont trois valeurs: "mâle", "femme", "aucune de vos affaires". p>
Désolé pour la question fondamentale, mais je suis curieux de simples pratiques. p>
5 Réponses :
Un énumeur semble mieux: http://www.postgresql.org/docs/current/static/dataType-Enum.html < / a> p>
Que diriez-vous d'utiliser un simple ou De toute façon, nil (null) ne doit pas évaluer en vrais ou faux par défaut. p> is_male: boolean code> champ? p>
is_female code>, si vous préférez. p>
C'est une solution très restrictive. Le type d'énumération natif fournit une spécificité beaucoup plus. Aussi "de toute façon, nul (null) ne doit pas évaluer en vrai ou faux par défaut." ce n'est pas vrai. Les valeurs nulelles sont évaluées à des valeurs fausses dans Ruby.
C'est ce que sont les domaines pour: la sortie: p>
Je suis d'accord avec Mike Jones. Enum est parfait pour cela. Enum est génial pour les petits ensembles de valeurs qui changent rarement. Le genre en est un exemple parfait. Habituellement, il vous suffit de 5: mâle, femme, intersexuelle, transgenre, inconnu. Tho beaucoup aller avec 3: mâle, femme, autre. 2 Toutefois (mâle, femme) est méchant pour ceux qui ne sont pas des hommes ou des femmes. P>
Utilisez simplement ENUM: P>
CREATE TYPE gen AS ENUM ('f', 'm');
CREATE TABLE lawyers_tb (
ID SERIAL PRIMARY KEY,
name VARCHAR,
gender gen
);
INSERT INTO lawyers_tb (name, gender)
VALUES ('Jose Luis Gonzales', 'm');