关于Rails上的ruby:ActiveRecord序列化无法与Hash列一起正常使用

ActiveRecord serialize not working properly with Hash column

我正在尝试使用ActiveRecord的序列化方法在表列中存储哈希,但是我无法使其工作。我正在使用Rails 4.2.0和RailsApi 0.3.1

这是我的模特:

1
2
3
class Agreement < ActiveRecord::Base
  serialize :phone_numbers, Hash
end

phone_numbers是一个文本列,如必填。

然后在控制台中:

1
2
3
4
5
6
a = Agreement.new(phone_numbers: {"dario" =>"12345"})
a.phone_numbers
=>"{"dario"=>"12345"}" #(Note this is a string, not a Hash as I would expect)

a.phone_numbers["dario"]
=>"dario" #(Not"12345" as I would expect)

我想念东西吗?谢谢!


您显示的行为与serialize调用错误,列名错误或完全丢失有关。例如。 https://gist.github.com/smathy/2f4536d3e59b7a52c855

您在问题中显示了正确的代码,因此您没有正确地复制粘贴该粘贴代码,或者自从添加/更正了serialize调用以来您没有重新启动Rails控制台?