我想知道爲什麼Active Record沒有針對所有按位和比較運算符的本機/烘焙式查詢接口。ActiveRecord的比較和位接口在哪裏?
我一直在使用,因爲2.3和/支撐軌排序的只是等待它的到來,但現在導軌5超出我覺得我要問,是OR
,AND
,gte
,lte
等。以及所有其他按位和比較運算符都將被原生地引入到Rails/AR中?如果沒有,我很好奇爲什麼?
我想知道爲什麼Active Record沒有針對所有按位和比較運算符的本機/烘焙式查詢接口。ActiveRecord的比較和位接口在哪裏?
我一直在使用,因爲2.3和/支撐軌排序的只是等待它的到來,但現在導軌5超出我覺得我要問,是OR
,AND
,gte
,lte
等。以及所有其他按位和比較運算符都將被原生地引入到Rails/AR中?如果沒有,我很好奇爲什麼?
或 - Rails 5確實推出了OR
-http://blog.bigbinary.com/2016/05/30/rails-5-adds-or-support-in-active-record.html。
和 - 是不是AND
只是在ActiveRecord::Relation
的where
鏈接?
其他按位運算符 - 我同意,ActiveRecord中沒有包裝對象。
您可以檢查出squeel
gem [railscast]。它提供了一個很好的API來完成這些操作。
考慮直接使用AREL。它提供了對按位運算符的支持,以及其他強大的東西。在某些方面,語法比直接的ActiveRecord :: Relation構建語法稍微有點神祕,但是獲得的額外控制粒度非常值得複雜。
這裏是你如何使用位運算符與AREL一個簡單的例子(從文檔中直取):
users = Arel::Table.new(:users)
users.where((users[:bitmap] & 16).gt(0)).project(Arel.sql('*'))
希望這是有幫助的。
謝謝,我以前不知道'OR',我沒有看到任何rails文檔。 – yekta