ActiveRecord序列化与Hash列无法正常工作

时间:2015-01-29 18:12:47

标签: ruby-on-rails activerecord

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

这是我的模特:

class Agreement < ActiveRecord::Base
  serialize :phone_numbers, Hash
end

phone_numbers是一个类似于它的文本列。

然后在控制台中:

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)

我错过了什么吗?谢谢!

1 个答案:

答案 0 :(得分:3)

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

您在问题中显示了正确的代码,因此要么您没有正确地进行复制粘贴,要么是因为添加/更正serialize调用后您还没有重新启动rails控制台? / p>