Ruby on rails 序列化列在Rails中始终保存为null

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'的值在控制器和视图中具有正确的值,

我所要做的就是在RubyonRails应用程序的数据库列中保存一个二维哈希。我只是在学习如何使用这个框架,这个任务让我感到非常悲伤。我尽了最大努力不犯任何愚蠢的错误,尽管我相信我的问题源于一个错误

所以我要做的是在控制器中创建散列,并将其设置为对象中字段的值,然后调用save

代码:
other_字段
将保存其新值,该值在随后从数据库检索时保持不变。当我再次从数据库中拉出实例时,“hash_字段”将始终重置为nil。尽管'@instance.hash_field'的值在控制器和视图中具有正确的值,但仍会发生这种情况。这让我可以自信地说,将哈希保存到数据库是一个问题

我有声明

:serialize :hash_field
在我的模型中,它在数据库表中的列被声明为“text”类型。任何指针都会让我非常高兴

-克里斯

  • “serialize”是一个方法
  • 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