Rails Postgres查询哈希列数组

时间:2015-05-14 15:01:49

标签: ruby-on-rails postgresql

我有一个带有'json'类型字段的表,我用它来存储哈希数组。

这是我的架构的样子:

create_table "recommendations", force: true do |t|
    t.text     "message"
    t.json     "vendors",               default: {}
    t.datetime "created_at"
    t.datetime "updated_at"
end

这是我的样本数据:

>> Recommendation.last.vendors
[{"name" => "Alphabeta"}, {"name" => "Gamma"}]

如何获得包含或名称为“Gamma”的供应商的所有建议?

我试过这个

>> Recommendation.where("vendors ->> 'name' = 'Gamma'").count

但不起作用。

更新: 我在这里找到了答案的方法Query for element of array in JSON column

这是:

s = "SELECT * FROM recommendations t, json_array_elements(t.vendors) AS elem WHERE  elem->>'name' = 'Gamma';"
ActiveRecord::Base.connection.execute(s).to_a

0 个答案:

没有答案