Je veux créer un ensemble de valeurs dans Ruby que je peux stocker et récupérer dans une base de données MySQL sous Rails.Stocker un tableau ou un hachage de booléens dans Ruby and Rails
Dans Delphi j'utiliser:
//Create an enumeration with four possible values
type TColour = (clRed, clBue, clBlack, clWhite);
//Create a set which can hold values from the above enumeration
TColours = set of TColours;
//Create a variable to hold the set
var MyColours = TColours;
begin
//Set the variable to hold two values from the enumeration
MyColours = [clRed, clBlack];
//MyColours now contains clRed and clBlack, but not clBlue or clWhite
//Use a typecast to convert MyColours to an integer and store it in the database
StoreInDatabase(Integer(MyColours));
//Typecast the Integer back to a set to retrieve it from the database
MyColours := TColours(RetrieveFromDatabase);
end;
Je peux alors utiliser un transtypage pour convertir en/à partir d'un nombre entier.
Comment pourrais-je atteindre la même chose dans Ruby/Rails? Pour clarifier, supposons que j'avais un formulaire avec des cases à cocher pour 'Rouge', 'Bleu', 'Noir', 'Blanc'. L'utilisateur peut choisir aucune, une ou plusieurs valeurs. Comment stocker et récupérer cet ensemble de valeurs?
BTW, une autre façon de le faire en delphi est avec les mathématiques au niveau du bit:
const
Red = 1;
Blue = 2;
Black = 4;
White = 8;
var MyColours: Integer;
begin
MyColours := Red+Black; //(or MyColours = Red or Black)
qui peut être stocké et récupéré sous forme d'entier
Je préférerais que vous ajoutiez des commentaires à votre code pour élaborer ce que l'extrait précédent fait exactement. – khelll