【发布时间】:2019-06-27 03:33:06
【问题描述】:
如果我需要有条件地查询,我尝试这样的方式:
query = Model.find_something
query = query.where(condition1: true) if condition1 == true
query = query.where(condition2: true) if condition2 == true
query = query.where(condition3: true) if condition3 == true
效果很好。 但是我觉得是重复同样的代码的一种方式,而且看起来不太好。
是否有可能查询不会根据每个条件表达式重新分配给变量?像这样:
query.where!(condition1: true) # But it can not be in rails :)
我最近开始使用 Rails5。
还有什么是实现 Rails5 的最佳方法?
【问题讨论】:
-
你在做什么有什么问题?我一直在做这种事情。它干净且易于阅读。
-
@muistooshort 我知道......这还不错。我也一直这样做。但是我突然想知道我是否使用 bang 方法来更改模型实例,即使它没有分配给自己,它也会自行更改,那为什么我不能使用查询接口呢?所以我有一个问题。为什么关系必须分配自己来添加一些查询?
-
你的方法没有问题,你甚至可以跳过
== true部分
标签: ruby-on-rails activerecord orm ruby-on-rails-5