从 JS 的查询字符串中向 Rails API 发送 Nil 值

问题描述 投票:0回答:1

我正在查询 Searchkick 端点,我想在其中查找字段为

nil
的所有结果。

控制台查询

Product.search('*', where: { category_id: nil })

正确返回结果。

当从客户端传递时,

nil
null
和所有其他内容都被解释为字符串,因此我的查询变为

Product.search('*', where: { category_id: 'nil' })

是否有一种 Rails 方式或特定编码可用于查询字符串,以使其能够正确解析为

nil
,而无需深入研究参数哈希并搜索字符串?

谢谢你

javascript ruby-on-rails
1个回答
0
投票

要处理这种情况,您需要在服务器端操作查询参数,将字符串“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
© www.soinside.com 2019 - 2024. All rights reserved.