Ruby on rails 当有重音符号时,按字母顺序对activerecord进行不区分大小写的排序
这是我正在使用的一个模型Ruby on rails 当有重音符号时,按字母顺序对activerecord进行不区分大小写的排序,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,这是我正在使用的一个模型 class WorkPost < ActiveRecord::Base default_scope -> { order(:label) } end 但是,我希望字母顺序考虑到É,并且不区分大小写。但是,我需要返回如下内容: WorkPost.pluck(:label) => ["Chanteur", "Économiste", "responsable du recrutement",
class WorkPost < ActiveRecord::Base
default_scope -> { order(:label) }
end
但是,我希望字母顺序考虑到É,并且不区分大小写。但是,我需要返回如下内容:
WorkPost.pluck(:label)
=> ["Chanteur", "Économiste", "responsable du recrutement", "Vétérinaire"]
我希望在ActiveRecord级别执行此操作,以获得良好的性能。您可以通过小写标签将默认范围更改为order:
default_scope order: 'lower(label)'
或者您可以使用大写:
default_scope order: 'upper(label)'
希望这有帮助您可以将默认范围更改为按小写标签排序:
default_scope order: 'lower(label)'
或者您可以使用大写:
default_scope order: 'upper(label)'
希望这有助于为了解决案例问题,我们可以使用LHH的解决方案 但是,为了解决重音问题,我们可以使用PostgreSQL扩展模块 要安装它,请执行以下操作:
class AddUnaccentToPostgres < ActiveRecord::Migration[5.2]
def change
enable_extension "unaccent"
end
end
为了解决案例问题,我们可以使用LHH的解决方案 但是,为了解决重音问题,我们可以使用PostgreSQL扩展模块 要安装它,请执行以下操作:
class AddUnaccentToPostgres < ActiveRecord::Migration[5.2]
def change
enable_extension "unaccent"
end
end
如果要在活动记录级别执行,那么应该在数据库级别执行。在这种情况下,值得一提的是您使用的是哪个数据库,以及您选择的存储选项(如果有的话)。您好,我使用的是postegresql,Unicode编码如果要在活动记录级别上进行编码,那么应该在数据库级别上进行。在这种情况下,值得一提的是您使用的是哪个数据库,以及您选择的存储选项(如果有的话)。您好,我使用的是postegresql,Unicode编码。这确实更好,它解决了我的案例问题,但并不能解决我的口音问题。我有=>[Chanteur,Responsible du Recruement,Vétérinaire,ÉEconomiste]Witch离我更近,但不是我想要的。这确实更好,它解决了我的案件问题,但它没有解决我处理口音的问题。我有=>[Chanteur,Responsible du Recruement,Vétérinaire,ÉEconomiste]女巫离我更近了,但不是我想要的。