我正在使用Rails 4.2和Postgres 9.4来try 新的JSONB数据类型.我数据库中的一个JSONB列包含一个数组,我希望能够查询该数组包含特定值的记录.我使用新的JSONB"问号"("contains")操作符解决了这个问题,如下所述:
因此,在原始SQL中,我可以让它像下面的示例一样工作:
SELECT * FROM people WHERE roles ? '32486d83-4a38-42ba-afdb-f77ca40ea1fc';
但我无法通过ActiveRecord从Rails内部进行此查询.我try 过使用"where"方法进行原始查询,如下所示:
Person.where("roles ? ?", "32486d83-4a38-42ba-afdb-f77ca40ea1fc")
但由于问号是用于替换参数的特殊字符,我得到了以下错误:
ActiveRecord::PreparedStatementInvalid:绑定变量的数量错误
我想我需要一种方法来逃离"?"因为我想让它通过字面意思.我试过\?和没有运气.