7, "rev"=>"708a4bd5b", "thumb_exists"=>false, "byt-6ren">
gpt4 book ai didi

ruby-on-rails - 我如何序列化 - 反序列化哈希以将其保存在数据库中?

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:25 25 4
gpt4 key购买 nike

我有一个散列:

h = {
"revision"=>7,
"rev"=>"708a4bd5b",
"thumb_exists"=>false,
"bytes"=>246000,
"modified"=>"Sun, 01 Jul 2012 17:09:15 +0000",
"client_mtime"=>"Sun, 01 Jul 2012 17:09:15 +0000",
"path"=>"/Getting Started.pdf",
"is_dir"=>false,
"icon"=>"page_white_acrobat",
"root"=>"dropbox",
"mime_type"=>"application/pdf",
"size"=>"240.2 KB"
}

我想使用以下命令将其保存在数据库中:h.to_s然后我想从数据库中获取内容并将其用作散列。

s = MyModel[:field_which_contains_hash_string]

我尝试使用 YAML::load s 加载内容,但出现错误:

Psych::SyntaxError: (<unknown>): found unexpected ':' while scanning a plain scalar at line 1 column 96

我猜这是由于时间字符串中的冒号所致。那么保存哈希并再次检索它的最佳方法是什么?

感谢您的帮助。最好,菲利普

最佳答案

在您的模型中创建一列文本类型。然后在你的模型文件中做

class MyModel < ActiveRecord::Base
serialize :column_name, Hash
end

然后使用以下方式访问它:

my_model = MyModel.new
my_model.column_name[:key] = value
my_model.column_name[:key]

哈希将使用 YAML 序列化到列中

http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Serialization/ClassMethods.html#method-i-serialize

关于ruby-on-rails - 我如何序列化 - 反序列化哈希以将其保存在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11729982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com