ruby-on-rails - ActiveRecord 序列化不能与哈希列一起正常工作

标签 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)

我是不是错过了什么??谢谢!

最佳答案

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

你在你的问题中显示了正确的代码,所以要么你没有正确复制粘贴,要么你没有在添加/更正 serialize 后重新启动 Rails 控制台打电话?

关于ruby-on-rails - ActiveRecord 序列化不能与哈希列一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221692/

相关文章:

mysql - Sinatra 中带有远程 MySQL 的 ActiveRecord

ruby-on-rails - Rails Devise 检查用户是否未登录

ruby-on-rails - 响应Ajax请求后,如何清除Rails闪存对象?

ruby-on-rails - 我认为这个查询是错误的吗?

ruby-on-rails - 如何将 ActiveRecord 属性转换为数据库或从数据库转换?

ruby - 为什么我不能在控制台中检查 ActiveRecord 验证?

ruby-on-rails - 使用切换按钮代替复选框(Rails、Twitter Bootstrap、Simple_form)

ruby-on-rails - 什么是 . :format mean in rake routes

mysql - 验证具有多个 parent 和多个 child 的列表(图)

ruby-on-rails - 如何在 Rails 中使用带有自定义 setter 方法的 update_attributes?