2016-08-23 26 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