在我的数据库中,我有一个带有值哈希值的列。我如何使用在何处获取值?
所以,如果我有这个
<PublicActivity::Activity id: 87, trackable_id: 1, trackable_type: "User", owner_id: 1, owner_type: "User", key: "shout.like", parameters: {:id=>"1187467057945665_1220996764592694", :provider=>"github"}, recipient_id: 1, recipient_type: "User", created_at: "2015-10-12 19:07:16", updated_at: "2015-10-12 19:07:16">
如何找到提供者的所有记录:“github”?我找不到关于如何做到这一点的注释。
我试过这个,但我一直在拿一个空数组
PublicActivity::Activity.where(parameters: 'github')
答案 0 :(得分:0)
如果您使用PostgreSQL,请使用以下语法搜索Hash serialized:
PublicActivity::Activity.where("parameters -> 'provider' = 'github'")
或者:
PublicActivity::Activity.where("parameters @> 'provider=>github'")
获取参数包含提供者密钥的所有记录:
PublicActivity::Activity.where("parameters ? 'provider'")