Sql 修改查询中的Ransack not_以在字段为nil时包含
我正在查询我的模型,如下所示:Sql 修改查询中的Ransack not_以在字段为nil时包含,sql,ruby-on-rails,arel,ransack,Sql,Ruby On Rails,Arel,Ransack,我正在查询我的模型,如下所示: MyModel.search(年份不在[2000、2010、2015]) 但是我从MyModel返回的结果仅限于year不是nil的情况。例如,查询在MyModel.year=1999处命中,但在MyModel.year=nil处不命中。我希望nil不在该数组中,但在SQL中可能就是这样定义的 有没有一种方法可以在ransacker中覆盖year或year\u not\u来添加上述条件?我能够在不覆盖的情况下解决这个问题,尽管我仍然对如何做感兴趣。加入这样的声明是
MyModel.search(年份不在[2000、2010、2015])
但是我从MyModel
返回的结果仅限于year
不是nil
的情况。例如,查询在MyModel.year=1999
处命中,但在MyModel.year=nil
处不命中。我希望nil
不在该数组中,但在SQL中可能就是这样定义的
有没有一种方法可以在ransacker中覆盖
year
或year\u not\u来添加上述条件?我能够在不覆盖的情况下解决这个问题,尽管我仍然对如何做感兴趣。加入这样的声明是我的解决方案:
.search(m:'or',year\u not\u in:[2000,2010,2015],year\u null:true)