2016-08-23 37 views
0

我想知道为什么Active Record没有针对所有按位和比较运算符的本机/烘焙式查询接口。ActiveRecord的比较和位接口在哪里?

我一直在使用,因为2.3和/支撑轨排序的只是等待它的到来,但现在导轨5超出我觉得我要问,是ORANDgtelte等。以及所有其他按位和比较运算符都将被原生地引入到Rails/AR中?如果没有,我很好奇为什么?

回答

1

考虑直接使用AREL。它提供了对按位运算符的支持,以及其他强大的东西。在某些方面,语法比直接的ActiveRecord :: Relation构建语法稍微有点神秘,但是获得的额外控制粒度非常值得复杂。

这里是你如何使用位运算符与AREL一个简单的例子(从文档中直取):

users = Arel::Table.new(:users) 
users.where((users[:bitmap] & 16).gt(0)).project(Arel.sql('*')) 

希望这是有帮助的。

+0

谢谢,这很有帮助。我知道艾尔,我相信它很棒,但是我更加好奇为什么按比例等等,没有被烧成铁轨。 – yekta

+0

啊。好吧,我的怀疑并没有参与框架的开发,因为AREL被设计为提供与数据库的更细粒度的交互,所以可能会有一个决定让基本的ActiveRecord接口更简单。 AREL是ActiveRecord的基础(不是外部的宝石),所以人们可以争辩说,这些运营商都被纳入铁轨。只是不在你寻找他们的地方。 – jaydel