【发布时间】:2016-03-24 04:15:10
【问题描述】:
我有 2 个对象,访客和事件。访客有多个事件。事件存储这样的参数...
#<Event id: 5466, event_type: "Visit", visitor_token: "c26a6098-64bb-4652-9aa0-e41c214f42cb", contact_id: 657, data: {"url"=>"http://widget.powerpress.co/", "title"=>"Home (light) | Widget"}, created_at: "2015-12-17 14:51:53", updated_at: "2015-12-17 14:51:53", website_id: 2>
如您所见,有一个名为 data 的序列化文本列,其中存储了包含更多数据的哈希。
我需要确定访问者是否访问过某个页面,如果 url 参数是它自己的列,或者哈希是 hstore 列,这将非常简单,但它最初不是这样设置的它是已保存哈希的一部分。
这是我尝试的 Rails 查询...
visitor.events.where("data -> url = :value", value: 'http://widget.powerpress.co/')
visitor.events.where("data like ?", "{'url' => 'http://widget.powerpress.co/'}")
visitor.events.where("data -> :key LIKE :value", :key => 'url', :value => "%http://widget.powerpress.co/%")
如何正确查询 postgres 以查找具有包含具有特定值的键的散列的对象?
【问题讨论】:
-
data列是字符串?
标签: mysql ruby-on-rails ruby postgresql hash