2010-12-05 9 views
1

Mon modèle a un champ serialize :settings. Il est également validé par une validation personnalisée. Je veux maintenant initialiser ce champ quand un objet est créé (self.settings = Settings.new). J'ai donc essayé dans un rappel after_initialization. Mais cela me donne Can't convert Settings into String. La même chose se produit lors de l'utilisation du rappel before_validation. Mais lorsque vous affectez le paramètre Setting.new manuellement après la construction de l'objet, il n'y a aucun problème. Pourquoi ne puis-je pas utiliser ces rappels pour définir les champs de sérialisation? (Rails3)Où initialiser un champ de sérialisation validé?

+0

Intéressant - que se passe-t-il si vous essayez de l'initialiser avec quelque chose comme un Hash ou un Array? – Cory

+0

Cory a raison de demander cela. aussi, que se passe-t-il si vous faites ce YAML :: dump (Settings.new) – ffoeg

Répondre

0

Assurez-vous que votre champ :settings est en fait de type :text plutôt que :string. Il peut vous aider à vérifier: something similar here