5

我在 rails 中使用 hstore 和 postgresql 存储产品信息,包括产品的发布年份。现在我希望能够查询在特定年份之前或之后发布的所有产品。我可以使用以下方法查询包含“数据”hstore 列中的年份字段的所有记录:

Product.where("data ? 'year'")

由于 hstore,年份值存储为字符串。因此,我尝试将年份类型转换为整数,以查找年份大于/小于 X 的记录:

Product.where("(data ? 'year')::int > 2011")

但是,这似乎不起作用,我总是得到一个空的结果数组作为回报。我究竟做错了什么?还有另一种方法可以做到这一点吗?

4

1 回答 1

2

我认为您正在寻找的运营商是->

所以,试试这个:where("(data -> 'year')::int > 2011")

(来自 jO3w 的评论)

于 2016-02-12T17:12:06.287 回答