【发布时间】:2011-11-24 11:55:48
【问题描述】:
我一直在阅读 ActiveRecord 中序列化的使用,我认为我了解如何使用它,但我的尝试失败了,所以我不确定我想要的东西是否可以通过这种方式实现?我想要的是存储一个简单的散列,将称为应计的对象的 id 链接到天数。例如 {"1" => "12", "5" => "24"}。我设置如下:
class User < ActiveRecord::Base
serialize :accrual_days, Hash
end
对于数据库
def self.up
unless column_exists? :users, :accrual_days
add_column :users, :accrual_days, :text
end
end
然后我进入 rails 控制台,输入以下命令:
User.find(1).accrual_days
=> 无
User.find(1).accrual_days = {"1"=>"12"}
=> {"1"=>"12"}
User.find(1).accrual_days
=> 无
似乎正在设置 accrual_days,但它不会持续存在。我尝试在设置应计日期后保存用户,并将其作为字符串而不是文本存储在数据库中,但问题仍然存在。我做错了什么?
【问题讨论】:
标签: ruby-on-rails ruby database serialization activerecord