Ruby on rails 序列化列在Rails中始终保存为null
我所要做的就是在RubyonRails应用程序的数据库列中保存一个二维哈希。我只是在学习如何使用这个框架,这个任务让我感到非常悲伤。我尽了最大努力不犯任何愚蠢的错误,尽管我相信我的问题源于一个错误 所以我要做的是在控制器中创建散列,并将其设置为对象中字段的值,然后调用save 代码:Ruby on rails 序列化列在Rails中始终保存为null,ruby-on-rails,ruby,database,serialization,hash,Ruby On Rails,Ruby,Database,Serialization,Hash,我所要做的就是在RubyonRails应用程序的数据库列中保存一个二维哈希。我只是在学习如何使用这个框架,这个任务让我感到非常悲伤。我尽了最大努力不犯任何愚蠢的错误,尽管我相信我的问题源于一个错误 所以我要做的是在控制器中创建散列,并将其设置为对象中字段的值,然后调用save 代码: other_字段将保存其新值,该值在随后从数据库检索时保持不变。当我再次从数据库中拉出实例时,“hash_字段”将始终重置为nil。尽管'@instance.hash_field'的值在控制器和视图中具有正确的值,
other_字段
将保存其新值,该值在随后从数据库检索时保持不变。当我再次从数据库中拉出实例时,“hash_字段”将始终重置为nil。尽管'@instance.hash_field'的值在控制器和视图中具有正确的值,但仍会发生这种情况。这让我可以自信地说,将哈希保存到数据库是一个问题
我有声明
:serialize :hash_field
在我的模型中,它在数据库表中的列被声明为“text”类型。任何指针都会让我非常高兴
-克里斯
Hash.new{h,k{h[k]=Hash.new{h1,k1{h1[k1]=0}}=>{}
class Model < ActiveRecord::Base
serialize :hash_field
end
类模型
您可能希望这样做:@instance.hash_field={:k=>{:k1=>0}
因为您的语句返回空哈希。
class Model < ActiveRecord::Base
serialize :hash_field
end