Rails 2.2 をとりあえず動かしてみる
2.2 がリリースされたようなのでさっそく Mac に導入。Windows は git を動かすだけでめんどくさいので、ますますゲーム機化していきます。
とりあえず RubyGems をアップデートして(1.3.1 必須)Rails をインストール。
sudo gem update --system sudo gem install rails
終わったら一応バージョンを見て 2.2.2 になっている事を確かめます。
では本番。適当にプロジェクトを作って、最初に config/environment.rb をいじります。
- # config.gem "sqlite3-ruby", :lib => "sqlite" + config.gem "sqlite3-ruby", :lib => "sqlite"
28行目、単に sqlite を使うよ、という宣言。
- # config.time_zone = "UTC" + config.time_zone = "Tokyo"
46行目、これは 2.2 系からの新機能ではありませんが、タイムゾーンの設定。
- # config.i18n.default_locale = :de + config.i18n.default_locale = :ja
51行目、日本語でおkなのでデフォルトの言語を日本語にしておきます。続いて国際化用のジェネレータをプラグインとしてインストールします。git 必須なので port あたりで入れてください。また、このジェネレータは gettext が必須なのでそれもインストールしておきます。
sudo gem install gettext script/plugin install git://github.com/amatsuda/i18n_generators.git
なお i18n_generators についてはリポジトリを確認してください。
ここまで終わったらジェネレータを動かしてみます。
script/generate i18n ja
正しく動くと config/locales 以下に色々ファイルが作られます。これで日本語化の準備は完了。
後は試しに動作を確認してみるだけ。
script generate scaffold category name:string
category.rb を開いて、バリデーションを追加。
class Category < ActiveRecord::Base validates_presence_of :name end
名前を空にして Category を作成すると、確かに各種標示が日本語になっています!まあ、もちろんモデルやカラムの名称は自分で設定するわけですが、それはまた別の話。
スレッドセーフ云々については、ローカルで遊んでいるレベルだとよく分からないので保留。一応 environment.rb なり、各種実行環境のコンフィグなりに以下のように書けばスレッドセーフになるようです。
config.threadsafe!
誰かがテストして確かめてくれるでしょう。とりあえず動かせる状態にするまでは以上。