你能把Arel表变成一个范围吗?

时间:2013-02-20 11:09:58

标签: ruby-on-rails ruby arel

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

这可能吗?

e.g。 User.arel_table.scoped.first

1 个答案:

答案 0 :(得分:6)

您可以在Relation#where

中使用arel语句

示例:

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

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