0

在 ruby​​ 中,我可以my_ar_collection.sort_by{ |element| element.name.downcase}在我的控制器中执行此操作。

我想要一个 ActiveRecord 类方法来做到这一点。

现在我有:

def self.ordered
  order(:name)
end 

但我想补充.downcase一点。我尝试了很多方法,例如使用sort_by和使用order :field.downcase但没有运气

4

1 回答 1

1

此代码有效:

Use order("lower(name)")

但并不理想,因为它使用的是 sql 函数而不是 ruby​​ 函数,因此它与数据库无关——也就是说——lower() 确实存在于大多数 sql 实现中,包括 MySQL、Postgres、sqlserver 和 Oracle。但是对于这个和其他类似的操作,我更喜欢使用 Ruby 方法。

于 2012-08-31T16:06:17.053 回答