我正在使用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的属性的站点,但我找不到比较此哈希属性的方法。你有什么方法可以建议我吗?
答案 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)