我需要按国家/地区在我的控制器中过滤我的模型。我的模型有4个位置字段,
loc1, loc2, loc3 and loc4
该国家/地区位于loc3
或loc4
。如果国家/地区位于loc3
,则loc4
为空。
我的模型上有一个名为country
的方法可以返回该国家/地区,但我无法在我的Active Record查询中使用该方法。
如何查看查看loc3和loc4的AR查询,如果loc4为空,则使用loc3 ad如果loc4不为空,则使用loc4。
有什么想法吗?
由于
答案 0 :(得分:0)
如果您使用的是postgres或mysql,则可以使用COALESCE
函数
Model.select("COALESCE(loc4, loc3) AS location")
在你的控制器中,你可以说
model.location
答案 1 :(得分:0)
只需使用普通的where方法(如果用空格表示""
)。
Model.where(country: (loc3 || loc4))