在RubyonRailsActiveRecord中,寻找实际工作的不区分大小写的排序

在RubyonRailsActiveRecord中,寻找实际工作的不区分大小写的排序,activerecord,ruby-on-rails-5,Activerecord,Ruby On Rails 5,ActiveRecord模型:如何排序和区分大小写 在搜索Google并尝试了一系列SO解决方案之后,似乎什么都不起作用,许多其他解决方案也不像我预期的那样优雅(它们需要显式调用其他方法,而不仅仅是作为内置默认方法工作,等等) 这句话我喜欢它的简单。问题在于它区分大小写: default_scope -> { order(alias: :asc) } 以下是我从谷歌获得的一些解决方案,因此: 1. default_scope -> { |alias| where(alias: al

ActiveRecord模型:如何排序和区分大小写

在搜索Google并尝试了一系列SO解决方案之后,似乎什么都不起作用,许多其他解决方案也不像我预期的那样优雅(它们需要显式调用其他方法,而不仅仅是作为内置默认方法工作,等等)

这句话我喜欢它的简单。问题在于它区分大小写:

default_scope -> { order(alias: :asc) }
以下是我从谷歌获得的一些解决方案,因此:

1. default_scope -> { |alias| where(alias: alias.downcase) }
2. scope lambda { |email| where(email: alias.downcase) }
3. default_scope order: 'lower(alias)'
4. default_scope -> { order(lower(alias: :asc)) }
5. default_scope -> { order(lower(:alias) :asc) }
这些解决方案都不起作用:大多数都会产生错误。也许这是因为我在Rails 5.0.2上,而这些都是为旧版本设计的?我不知道


在Ruby中,在我的开发阶段,是一些简单的事情绊倒了我。谢谢您的帮助。

此解决方案确实有效。说到这一点,这是很明显的,但让我感到困惑的是,在最初的问题中,通过研究这个绝对不起作用的问题找到了奇怪的答案

default_scope -> { order('lower(alias) asc') }

您应该提供比一行代码更详细的信息。看,你说得对。增加了一些信息,但不是很有见地,因为我不明白为什么在做研究后有这么多的事情“不”起作用。