2

我需要 Arel 做一些 ActiveRecord 无法完成的事情,但我的方法应该返回一个范围,因为调用者可能想要添加他们自己的一些范围。

这可能吗?

例如User.arel_table.scoped.first

4

1 回答 1

6

您可以在中使用 arel 语句Relation#where

例子 :

Model.where( Model.arel_table[:column].not_eq( nil )
               .or(Model.arel_table[:other_column].gt( 0 )) )

关于它有一个很好的ASCIIcast(最后是 arel)。此外,您可能对squeel感兴趣。

于 2013-02-22T15:16:34.450 回答