如何在rails控制台上反序列化Rails ActiveRecord序列化字段?

时间:2016-06-21 22:17:44

标签: ruby-on-rails activerecord serialization

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

1 个答案:

答案 0 :(得分:3)

您的数据库中似乎有一个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