小编ale*_*zko的帖子

使用 Postgres 查询哈希数组

我有一个模型,它有一列看起来像这样(示例):

column = [{:A => "1", :B => "2"}, [a, b, c, ..., n]]
Run Code Online (Sandbox Code Playgroud)

其中abcn也哈希,像这样(例子):

a = {:X => "x", :Y => "y"}
Run Code Online (Sandbox Code Playgroud)

目前,如果我调用m模型的记录,例如,m.column[0][:A]它返回=> "1"
如果我调用m.column[1][0]我得到a = {:X => "x", :Y => "y"}

到现在为止还挺好。

现在的问题是,我怎样才能获得模型的所有记录的数组,例如,column[0][:A] = "1"???

我正在尝试这样的事情(但它不起作用):

Model.where("column[0][:A] = ?", "1")
Run Code Online (Sandbox Code Playgroud)

错误说:

PG::SyntaxError: ERROR:  syntax error at or near ":"
Run Code Online (Sandbox Code Playgroud)

编辑:

column是一种text数据类型
,在它的模型中它有serialize :column, Array

postgresql activerecord ruby-on-rails rails-activerecord

2
推荐指数
1
解决办法
2110
查看次数