ruby-on-rails - Rails4 : My hstore attribute is being converted to String

标签 ruby-on-rails postgresql hstore

我的模型中有一个 Hash 属性,它使用 Postgres hstore 扩展。问题是这个属性被 Rails4 转换为字符串。这使我无法进行基本操作,例如 .each.map 来处理我的哈希属性。

使用 Rails 控制台,不会转换 Hash。打字:

@device.data
@device.data.class

在 Rails 控制台中提供:

{"city"=>"London", "owner_name"=>"John"}
Hash

在应用程序本身中(使用导航器):

"\"city\"=>\"London\","\"owner_name\"=>\"John\"
String

你有什么想法吗?

更新:

这是模型:

class Device < ActiveRecord::Base

  belongs_to :company
  has_many :records

  validates :name, presence: true
end

以及对应的迁移文件:

class CreateDevices < ActiveRecord::Migration
  def change
    create_table :devices do |t|

      t.string :name
      t.hstore :data
      t.integer :company_id

      t.timestamps
    end

    add_index :devices, :name
  end
end

最佳答案

尝试删除您的 tmp 文件夹并重新启动所有服务器。

rm -rf tmp/*

关于ruby-on-rails - Rails4 : My hstore attribute is being converted to String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288366/

相关文章:

ruby-on-rails - 在 FactoryGirl 中创建 HABTM 关系?

ruby-on-rails - 载波还是回形针作为上传者?

ruby-on-rails - Rails Mongoid geo_near 按距离排序

sql - 引发异常以禁止更新 PostgreSQL 中的列

sql - 按 hstore 中任意属性的值排序

sql - 如何使用 hstore 进行 IN 查询?

ruby-on-rails - 判断 Controller 是否在 Rails 3 的嵌套路由中使用

sql - 有效地更新非常大的 PostgreSQL 数据库表

C# .NET + PostgreSQL

ruby - Rails update_all 与 hstore