加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 使用Ransack’eq’谓词搜索空值

发布时间:2020-12-17 02:46:08 所属栏目:百科 来源:网络整理
导读:使用带有空值的’eq’谓词,Ransack将取消该谓词.在您的选择中选择“全部”选项显然很方便. 但是如果我想在我的 select中添加一个选项呢?对于空值?顺序说明如何使用’eq’谓词生成SQL查询SELECT * FROM spree_orders WHERE order_cycle_id = NULL. 我的测试
使用带有空值的’eq’谓词,Ransack将取消该谓词.在您的选择中选择“全部”选项显然很方便.

但是如果我想在我的< select>中添加一个选项呢?对于空值?顺序说明如何使用’eq’谓词生成SQL查询SELECT * FROM spree_orders WHERE order_cycle_id = NULL.

我的测试代码(带结果)如下.我想要的是过滤掉order_cycle_id == nil的订单

Spree::Order.search(order_cycle_id_eq: nil).result.map(&:order_cycle_id)
Spree::Order Load (2.2ms)  SELECT "spree_orders".* FROM "spree_orders" 
 => [nil,1,nil,4,nil]

第二个选项是我想添加到我的选择中.我试过’null’,’nil’,nil等.

<select id="q_order_cycle_id_eq" name="q[order_cycle_id_eq]">
  <option value="">All</option>
  <option value="nil">No Order Cycle</option>
  <option value="1">Order Cycle 1</option>
  <option value="2">Order Cycle 2</option>
</select>

解决方法

在控制台中试试这个:

Spree::Order.search(order_cycle_id_null: true)

在html视图集中然后在你的控制器中更改ransack查询

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读