gpt4 book ai didi

ruby-on-rails - 使用 Rails 序列化将散列保存到数据库

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

我试图在我的 Rails 应用程序中将 HashMap ID 保存到多次尝试中。我迁移到数据库以容纳这个新列:

class AddMultiWrongToUser < ActiveRecord::Migration
def self.up
add_column :users, :multi_wrong, :string
end

def self.down
remove_column :users, :multi_wrong
end
end

在我的模型中我有:

class User < ActiveRecord::Base 
serialize :multi_wrong, Hash
end

但是当我使用 Rails 控制台来测试它时:

user = User.create()
user.multi_wrong = {"test"=>"123"}
user.save

输出为假。这里出了什么问题?

最佳答案

列类型错误。您应该使用文本而不是字符串。因此,您的迁移应该是:

 def self.up
add_column :users, :multi_wrong, :text
end

然后 Rails 会为您正确地将其转换为 YAML(并执行正确的序列化)。字符串字段的大小有限,只能保存特别小的值。

关于ruby-on-rails - 使用 Rails 序列化将散列保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694432/

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