QA@IT

Railsで日本語カラムの使用について

3572 PV

表題の件について、事例を探しています。
日本語カラムを使用した場合の問題点、動作しないgem・・・などを
ご存知の方がいらっしゃいましたら、ご教示お願いします。

環境

Ruby 1.9.3
Rails 3.2.6
MySQL 5.5

scaffoldの例

$ rails g scaffold User 名前 年齢:integer

migrationの例

# -*- coding: utf-8 -*-

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :名前
      t.integer :年齢

      t.timestamps
    end
  end
end

回答

変数名に日本語を使わない(使えない)のと同じ理由で、カラム名も日本語は使わないほうがいいです。本来なら問題点を個々に列挙すべきなのでしょうが、あまりに多すぎて列挙しきれないというのが正直なところです。

表示のときにモデルの属性名を日本語にするためには、i18nという仕組みがあるので、config/locales/ja.ymlを定義すれば良いです。このi18nによるモデルとビューの分離に非常に効果的で、日本語のUIしか用意しないから、と思って敬遠してるともったいないです。

私のように英語のUIしか用意しないケースでも、i18nをつかってカラム名を別の英単語に変えたりできるので(たとえばpassword_digestを"Password"に変えてエラーメッセージに使ったり)便利です。

編集 履歴 (0)
  • もし可能であれば、問題点を2〜3点ほどご教示頂けないでしょうか? -
  • まず、ほとんどすべてのファイルでmagic commentが必要になります。個人的にはこれだけでもアウトですが、他のライブラリでアサインされてる文字列リテラルはUS-ASCIIであることがほとんどなので、これらをinterpolationで混ぜてsendするようなメタプロは全てエラーになりますよね。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。