Deux champs booléens. Champ de saisie unique. Ruby sur les rails
-
14-11-2019 - |
Question
J'ai deux champs booléens dans mon modèle. Il y a une dépendance selon laquelle une seule peut être vraie à la fois. Sur ma page de vue, je souhaite les afficher sous forme de radio en utilisant Formtastic. Et pas séparément mais en tant que groupe radio. Je sais qu'il y a un chemin Rails, mais je ne peux pas le trouver.
Veuillez aider. Merci d'avance.
La solution
Vous pouvez créer un attribut virtuel pour obtenir et définir la valeur appropriée. Par exemple, si vous aviez un booléen nommé mâle et une femme nommée booléenne, vous pouvez contrôler les deux avec l'attribut de genre comme ceci:
class User
def gender= gender
self.male = (gender == 'M')
self.female = (gender == 'F')
end
def gender
male ? 'M' : 'F'
end
end
Vous pouvez ensuite avoir un groupe de bouton radio pour sélectionner le sexe:
radio_button_tag :gender, 'M'
radio_button_tag :gender, 'F'
Bien sûr, vous avez toujours la possibilité de combiner les valeurs en un seul attribut à 3 états, comme le sexe qui peut être «M», «F» ou Null.