有人知道在rails 4中是否可以有hstore的数组吗?我试着用
add_column :orders, :frozen_content, :hstore , array: true但我有
PG::Error: ERROR: malformed array literal: 当我尝试保存时
发布于 2013-06-27 22:31:59
原则上是可以的,但正如您所发现的,它在保存时不会被正确转义。我今天刚刚记录了一个关于这方面的问题,请参阅https://github.com/rails/rails/issues/11135 (包括一个修复补丁和一些演示代码)
发布于 2013-11-30 22:19:19
这是一个至少存在于Rails 4.0.1中的错误。
A pull request was proposed to fix it,但在合并之前,您可以对Rails进行补丁:
# config/initializers/extensions/postgres.rb
module ActiveRecord
module ConnectionAdapters
class PostgreSQLColumn < Column
module Cast
private
def quote_and_escape(value)
case value
when "NULL"
value
else
"\"#{value.gsub(/(["\\])/, '\\\\\1')}\""
end
end
end
end
end
end顺便说一下,我在Rails控制台中测试时遇到了问题,因为初始化程序没有加载到那里。您可以使用以下命令执行此操作:
load "#{Rails.root}/config/initializers/extensions/postgres.rb"发布于 2013-04-18 04:11:09
您可以起诉activerecord-postgres-hstore gem:
https://github.com/engageis/activerecord-postgres-hstore
从文档中:
类Person < ActiveRecord::Base serialize :data,ActiveRecord::Coders::Hstore end
person.save
Perosn.where("data -> 'foo‘= 'bar'")
Railscast #345 (在付费墙后面)更详细地介绍了使用hstore,使用activerecord-postgres-hstore gem:
http://railscasts.com/episodes/345-hstore
注意:我还没有在Rails4上尝试过...YMMV.
https://stackoverflow.com/questions/15783110
复制相似问题