2011-11-14 5 views
0

Besoin de stocker un hachage sérialisé dans mysql. Puisque la taille du hachage va être très petite, j'ai décidé d'utiliser un varchar pour sauvegarder les données sérialisées au lieu de la colonne de texte. J'utilise mysql avec rails 3.Ruby On Rails - Peut-on utiliser une colonne varchar pour sauvegarder les données sérialisées?

Modèle:

class User < ActiveRecord::Base 
    serialize :monday 
end 

Quand je fais ce qui suit,

u = User.new 
u.monday = {:from => "10:00", :to => "04:00"} 
u.save 

je suis l'erreur suivante "TypeError: classe ou module requis". Ne devrions-nous pas utiliser varchar pour les données sérialisées?

+0

Vous ne savez pas si vous pouvez stocker une plage (deux fois) dans une seule colonne de date ou d'heure. Où sont définis 'from' et 'to'. La plupart des problèmes dans les rails proviennent d'une utilisation non standard. BTW ne choisissez pas un type de données basé sur un hachage étant "très petit". choisissez de bonnes solutions faciles à entretenir et à lire en essayant d'empaqueter l'information en moins d'octets. Heureusement, il faut moins de ces jours-ci gicen power and storage –

Répondre

2

Vous avez besoin d'un type de données de base de données texte pour utiliser l'option sérialiser.