Ruby on rails 在哈希不起作用的情况下使用ActiveRecord序列化?
我一直在阅读ActiveRecord中serialize的使用,我想我知道如何使用它,但是我的尝试失败了,所以我不确定我想要的是否可以通过这种方式实现?我想要的是存储一个简单的散列,将名为“应计”的对象id链接到天数。例如{“1”=>“12”,“5”=>“24”}。我的设置如下:Ruby on rails 在哈希不起作用的情况下使用ActiveRecord序列化?,ruby-on-rails,ruby,database,serialization,activerecord,Ruby On Rails,Ruby,Database,Serialization,Activerecord,我一直在阅读ActiveRecord中serialize的使用,我想我知道如何使用它,但是我的尝试失败了,所以我不确定我想要的是否可以通过这种方式实现?我想要的是存储一个简单的散列,将名为“应计”的对象id链接到天数。例如{“1”=>“12”,“5”=>“24”}。我的设置如下: class User < ActiveRecord::Base serialize :accrual_days, Hash end 然后我进入rails控制台,输入以下命令: User.find(1
class User < ActiveRecord::Base
serialize :accrual_days, Hash
end
然后我进入rails控制台,输入以下命令:
User.find(1).累计天数
=>零
User.find(1).应计天数={“1”=>“12”}
=>{“1”=>“12”}
User.find(1).累计天数
=>零
似乎应该设定应计天数,但它不会持续。我尝试在设置应计日后保存用户,并将其作为字符串而不是文本存储在数据库中,但问题仍然存在。我做错了什么?您没有在数据库中保存值 试一试
您没有将值保存到数据库中 试一试
谢谢,我知道我很久以前就发布过这篇文章了,但是迟来接受答案总比不接受好!谢谢,我知道我很久以前就发布过这篇文章了,但是迟来接受答案总比不接受好!
def self.up
unless column_exists? :users, :accrual_days
add_column :users, :accrual_days, :text
end
end
user = User.find(1)
user.accrual_days = {"1"=>"12"}
user.save
User.find(1).accrual_days