【问题标题】:How do I deserialize an Rails ActiveRecord serialized field on rails console?如何反序列化 Rails 控制台上的 Rails ActiveRecord 序列化字段?
【发布时间】:2016-06-21 22:17:43
【问题描述】:

在我的数据库中,我有一个 ActiveRecord 类型的表,该表具有一个序列化对象(存储为“---!ruby/hash:”,后跟类名和键/值,由换行符分隔)。我必须手动重建数据库的一部分,而我现在所拥有的只是行的 CSV 转储。我正在研究导入对象和恢复条目的解决方案,但我找不到反序列化这些序列化哈希的方法。调用什么对象/方法来恢复这些对象?

【问题讨论】:

    标签: ruby-on-rails activerecord serialization


    【解决方案1】:

    您的数据库中似乎有一个 yaml 对象。您可以尝试以下方法:

    YAML::load(your_column)
    

    作为一个使用 Time 对象转换列的示例:

        [1] pry(main)> puts t.request
        --- 2016-06-22 01:23:54.038830166 +03:00
        ...
        => nil
        [2] pry(main)> YAML::load(t.request)
        => 2016-06-22 01:23:54 +0300
        [3] pry(main)> YAML::load(t.request).class
        => Time
    

    【讨论】:

    • 谢谢,这让我朝着正确的方向前进!
    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多