Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在哈希不起作用的情况下使用ActiveRecord序列化?_Ruby On Rails_Ruby_Database_Serialization_Activerecord - Fatal编程技术网

Ruby on rails 在哈希不起作用的情况下使用ActiveRecord序列化?

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

我一直在阅读ActiveRecord中serialize的使用,我想我知道如何使用它,但是我的尝试失败了,所以我不确定我想要的是否可以通过这种方式实现?我想要的是存储一个简单的散列,将名为“应计”的对象id链接到天数。例如{“1”=>“12”,“5”=>“24”}。我的设置如下:

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