我的模型中有一个 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/