ruby – 我可以使用AREL / ActiveRecord更优雅地编写此查询吗?
发布时间:2020-12-17 03:59:31 所属栏目:百科 来源:网络整理
导读:我可以使用AREL / ActiveRecord API更短和/或更优雅地编写此查询吗? Foo.where("(bar is not null and bar != '') or (baz is not null and baz !='')") 解决方法 您可以直接使用Arel执行OR运算符,但语法不是很漂亮,并且可能有点难以阅读.这是它在arel中的
我可以使用AREL / ActiveRecord API更短和/或更优雅地编写此查询吗?
Foo.where("(bar is not null and bar != '') or (baz is not null and baz !='')") 解决方法
您可以直接使用Arel执行OR运算符,但语法不是很漂亮,并且可能有点难以阅读.这是它在arel中的样子:
foo = Foo.arel_table Foo.where(foo[:bar].not_eq(nil).and(foo[:bar].not_eq('')).or(foo[:baz].not_eq(nil).and(foo[:baz].not_eq('')))) 我建议看看这个吱吱声的宝石.它使您可以访问活动记录中的更多arel功能.您的查询需要: Foo.where{(bar.not_eq nil) & (bar.not_eq '') | (baz.not_eq nil) & (baz.not_eq nil)} 这是更多信息的链接:http://erniemiller.org/projects/squeel/ 有一些不同的方法你可以用吱吱声写出来,它支持一些不同的语法风格,所以如果你不喜欢上面那个有替代品. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |