質問: 開発段階では問題なかったのですが、デプロイ後はソートすると並びがめちゃくちゃになってしまいます。 DBは、開発段階はSqlite3、productionはPostgresqlです。 「heroku rails sort」などでググると、Postgresqlの場合、日本語がうまくソートできない事例がよくあるみたいなのですが、そこで解決策とされている、 > > COLLATE "C" ASC' > > > などがよくわかりません。 参考:Rails + Heroku + Postgres で日本語の order がうまくいかない対処法 自分のアプリでのソートしたい部分の記述は以下の通りです。 ``` <%= sortable "name_kana", "タイトル" %> ``` これとこれに付属するコード類は以下のページを参考に記述しています。 参考:#228 Sortable Table Columns - RailsCasts コントローラー、ヘルパー、HTML、... どこをどう書き換えればPostgresqlで日本語のソートをうまく機能させられるのでしょうか。また、COLLATEについて解説いただけると助かります。
回答: 参考:PostgreSQLで正しく文字列ソート出来ない時の解決方法 上記参考ページをもとに、以下の手順で解決いたしました。 ※Local環境にHeroku上のPostgreSQLと同バージョンのPostgreSQLをインストールしてあることが前提。 コマンドプロンプトに以下を入力。 > > $ heroku pg:psql > > ※あるいは、HerokuのサイトにログインしHeroku CLIをコピペして貼り付け > > ※($ heroku pg:psql postgresql-cylindrical-5桁の数字 --app アプリ名)←こんな感じ > > > アプリ名::DATABASE=> と出るので、続いて以下を入力。 > > => ALTER TABLE モデル名 ALTER COLUMN カラム名 TYPE VARCHAR COLLATE "ja_JP.utf8"; > > > これだけでした。