在活动记录栏上查找哈希属性值

时间:2014-07-17 10:26:24

标签: ruby-on-rails activerecord

我正在使用Ruby on Rail开发应用程序。在我目前的项目中,我有一个活跃的记录模型作为例子如下:

<Site id: 6241, collection_id: 7, name: "ABC", properties: {"31"=>20}>
<Site id: 6242, collection_id: 7, name: "ABC", properties: {"10"=>20}>
<Site id: 6243, collection_id: 7, name: "ABC", properties: {"11"=>30}>

但是,我想找到具有键'31'和值20的属性的站点,但我找不到比较此哈希属性的方法。你有什么方法可以建议我吗?

3 个答案:

答案 0 :(得分:1)

如果列类型hstore和db postgres,您可以按此查询进行搜索:

Site.where("properties @> hstore(?, ?)", 'key', 'value')

答案 1 :(得分:1)

还假设您的列类型是hstore,则可以:

Site.where(properties: { key: "value" })

答案 2 :(得分:0)

我也使用mysql,这将工作: Site.where(properties: {"31"=>20}.to_yaml)