大場寧子のホームページ - Rails2.0.1メモ Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!!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/ 以下を更新