我需要arel来做一些在activerecord中不可能做的事情,但是我的方法应该返回一个作用域,因为调用方可能希望添加一些自己的作用域。
这可能吗?
例如User.arel_table.scoped.first

最佳答案

您可以在Relation#where中使用arel语句。
例子:

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

有一个很好的ASCIIcast(arel在结尾)。此外,您可能对squeel感兴趣。

关于ruby-on-rails - 您可以将Arel表转回示波器吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14978385/

10-08 23:08