count0.org

HerokuのPostgresqlで日本語ソートにハマった

21 November 2012 ruby

日本語のカラムをソートすると順番がおかしい。

StackOverflowを漁り遠回りしつつ、最終的にリンク先に書いてある通りCOLLATEを指定すると良い。

ActiveRecordを使っていたので、Production環境ではCOLLATEを明示的に書くことでこの問題を回避できた。

class Hoge < ActiveRecord::Base
  default_scope order('name COLLATE "C" ASC') if ENV["RACK_ENV"] == "production"
end