!!Module階層化関連
気になっていた問題がほぼ解消された。
* fixture は fixtures 直下にテーブル名で用意する。(Rails 1.2.5 ではサブフォルダ下に入り動作させるためにステップがあった)
** ただし、model を generate すると空のモジュール名ディレクトリも作られる。何に使うのかなこれ?
* テーブル名は module とクラスを _でつないだものにすると楽
* ↑その場合、モデルクラスに set_table_name が必要
* 同じ階層同士のモデル間で関連をはる場合、:class_name は指定しなくてよくなった(Rails 1.2.5 では必要だった)
と思ったら不具合もあった。
* has_many で extension しようとすると例外。どうも、has_many を記述している側のクラスがModuleの下にあるという状況を想定していない不具合っぽい雰囲気。階層化されていないモデル同士なら動くコード。
!!Migration
* t.timestamp で created_at, updated_at を作ってくれる。Generate すると書いてあるので自分で書かないですむ。
!!データベース接続
Model をまだ1つも作っていなくても、コントローラをつくってアクセスするとDBがないと怒られる。
...
/opt/local/lib/ruby/gems/1.8/gems/activerecord-2.0.1/lib/active_record/query_cache.rb:8:in `cache'
/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/caching.rb:677:in `perform_action'
...
!!GetText で 500 Internal Server Error
が出た。むとう様に情報をいただいて解決。Ruby 1.8.6 p26 より前で出る現象だった。Ruby のバージョンアップで解決。
* http://d.hatena.ne.jp/craccho/20071210
* http://zargony.com/2007/07/29/using-ruby-gettext-with-edge-rails/
!!1.2.xアプリからの移行の手順例
フレームワーク
* 同名のプロジェクトを Rails 2.0.x で rails xxx で作る
* environment.rb を、アプリの加工部分は活かして移植
* rake rails:update を実行 → boot.rb と javascript が更新される
* envrionment/ 以下のファイルを、アプリの加工部分は活かして移植
* application.rb を、アプリの加工部分は活かして移植
* script/ 以下を更新