2010-12-05 14 views
1

私のモデルのフィールドはserialize :settingsです。また、カスタム検証によって検証されます。私は今、オブジェクトが作成されるときにそのフィールドを初期化したい(self.settings = Settings.new)。だから私はafter_initializationコールバックでそれを試みた。しかしそれは私にCan't convert Settings into Stringを与えます。 before_validationコールバックを使用しても同じことが起こります。 しかし、オブジェクトを作成した後に手動でSetting.newを割り当てるときには問題は全くありません。これらのコールバックを使用してシリアル化フィールドを設定できないのはなぜですか? (Rails3)検証されるシリアル化フィールドを初期化する場所は?

+0

興味深い - ハッシュや配列などで初期化しようとするとどうなりますか? – Cory

+0

コーリーはそれを聞くのが正しいです。また、これを行うとどうなるでしょう:YAML :: dump(Settings.new) – ffoeg

答えて

0

:settingsフィールドのフィールドが実際にはではなく:textであることを確認してください。 something similar here

関連する問題