[英]How to do Rails Active Record query for this
我需要按国家/地区过滤控制器中的模型。 我的模型有4个位置字段,
loc1, loc2, loc3 and loc4
国家在loc3
或loc4
。 如果国家在loc3
则loc4
为空白。
我的模型上有一个名为country
的方法,该方法可以返回该国家,但是我无法在Active Record查询中使用该方法。
我该如何查看loc3和loc 4的AR查询,如果loc4为空,则使用loc3 ad,如果loc4不为空,则使用loc4。
有任何想法吗?
谢谢
如果您使用的是Postgres或mysql,则可以使用COALESCE
函数
Model.select("COALESCE(loc4, loc3) AS location")
在您的控制器中,您可以说
model.location
只需使用常规的where方法(如果为空白,则表示""
)。
Model.where(country: (loc3 || loc4))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.