ruby-on-rails - 当有重音符号时,activerecord 中按字母顺序不区分大小写排序

标签 ruby-on-rails activerecord

这是我正在使用的模型之一

class WorkPost < ActiveRecord::Base
  default_scope -> { order(:label) }
end

现在排序将呈现类似的内容

WorkPost.pluck(:label)
=> ["Chanteur", "Vétérinaire", "responsable du recrutement", "Économiste"]

但是,我希望字母顺序考虑“É”并且不区分大小写。但是,我需要返回类似的内容:

WorkPost.pluck(:label)
=> ["Chanteur", "Économiste", "responsable du recrutement", "Vétérinaire"]

我希望这在 ActiveRecord 级别完成,以便获得良好的性能。

最佳答案

您可以将默认范围更改为按小写标签排序:

default_scope order: 'lower(label)'

或者您可以使用大写字母:

default_scope order: 'upper(label)'

希望这有帮助

关于ruby-on-rails - 当有重音符号时,activerecord 中按字母顺序不区分大小写排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22375869/

相关文章:

ruby-on-rails - Ruby on Rails Devise,身份验证失败时如何更改登录路径?

ruby-on-rails - 运行 rake db :setup removes all my users data

ruby-on-rails - Postgres/ActiveRecord 按字母排序然后按数字排序?

ruby-on-rails - 使用 DataMapper 而不是 ActiveRecord

ruby-on-rails - 为什么 slice 需要 !上类?

ruby-on-rails - 在 Ruby on Rails 中从 html 表单获取数据到 ruby

ruby-on-rails - NoMethodError : undefined method `[]' for false:FalseClass

mysql - 10 :00 - 00:00 之间的 Rails ActiveRecord 时间

php - 如何创建 Codeigniter 批量插入数组

ruby-on-rails - 对于多个 sidekiq 进程,sidekiq 和 postgres 的 activerecord 连接池大小是否合适?