我正在查询 Searchkick 端点,我想在其中查找字段为
nil
的所有结果。
控制台查询
Product.search('*', where: { category_id: nil })
正确返回结果。
当从客户端传递时,
nil
、null
和所有其他内容都被解释为字符串,因此我的查询变为
Product.search('*', where: { category_id: 'nil' })
是否有一种 Rails 方式或特定编码可用于查询字符串,以使其能够正确解析为
nil
,而无需深入研究参数哈希并搜索字符串?
谢谢你
要处理这种情况,您需要在服务器端操作查询参数,将字符串“nil”(或“null”)转换回正确的 nil 值,然后再将其传递给 Searchkick 查询。这里有一些方法:
def search
category_id = params[:category_id]
category_id = nil if category_id.blank? || category_id == '_nil'
products = Product.search('*', where: { category_id: category_id })
render json: products
end