sql >> データベース >  >> RDS >> Mysql

ストアアクセサーの問題:Rails 4のmysqlデータベースにすでに保存されている古いjsonオブジェクトのシリアル化された(ハッシュ)値を読み取れません

    私はついに解決策を見つけました。 「ストアアクセサー」(質問で言及)の実装は、activerecord4.2.4で変更されています。以前(アクティブレコード3.2.8)、データベースに保存されたデータはYAML形式であり、「コーダー:JSON」で動作していましたが、アクティブレコード4.2.4ではそうではありません

    コードリンク4.2.4 https ://github.com/rails/rails/blob/master/activerecord/lib/active_record/store.rb#L85

    コードリンク3.2 https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/store.rb#L35

    4.2.4では、シリアル化された属性に格納されているデータがYAMLであるかJSONであるかに関係なく、現在機能しているコーダーはYAMLです。

    したがって、コーダーをJSONからYAMLに変更した後、コードが機能し始めました。

    この回答に関する質問/疑問はありがたいです。




    1. Mysql:タイムスタンプ列を使用して特定の日のエントリを検索します

    2. 漢字でMysql全文検索を実行する方法は?

    3. Pythonからmysqlへの日時パス値

    4. ユーザーに最新のAndroidアプリバージョンを強制する