Railsのバージョン2.3.3がリリースされた。
通常のバグフィックス以外にいくつかの新しい機能が加わった。リリースノートを引用しよう。
- touchはレコードのタイムスタンプを更新するためだけの便利メソッドです。これはモデルが変更される際に他のモデルを「タッチ」するようにアプリから呼び出されます。たとえばコメントのオブジェクトが保存され破棄された後にparent.replies_changed_at(返信が変更された日時)のタイムスタンプを更新します。・・・
- より広範なレガシースキーマや別々のUUIDプライマリキーを使うスキーマをサポートするためのbelongs_toの:primary_keyオプション。belongs_to :employee, :primary_key => 'SSN', :foreign_key => 'EMPID' ・・・
- ユーザーが簡単に使えるJSONエンコードAPI。
- JSONとYAJL用のデコーディングバックエンド。どちらも標準のYAMLバックエンドよりはるかに高速です。
Rails 3の開発も進んでいる。Rails 3の新しいアーキテクチャやコードベースをRailsへリファクタリングした際に学んだ教訓についてYahuda Katz氏がいくつかのブログ記事を書いている。
Rails 3の目標のひとつはMerbのモジュール性とよくできた内部APIをRailsのコードベースに導入することだ。Katz氏の記事ではActionControllerとActionView間のインターフェースを例に、どのように変わるかが説明されている。今判るのはMerbとRailsの融合が主要プロジェクトになっており、その作業が現在も進行中であるということだ。
Rails 3の作業はMerbの開発にも影響を与えている。数ヶ月前が予定だったMerb 1.1について、Merbのメーリングリストで最近議論がされた。現在の計画ではRails 3との統合がスムーズに進むよう方向に向かっているが、そのためには当然ながらRails 3のアーキテクチャがどうなるかを知る必要がある。 これらのことから分かるのは、Ezra Zygmuntowicz氏(Merbの作者)が指摘するようにMerbが依然として多くのプロジェクトに対して利用可能なソリューションであるということだ。
私が言いたいのは、私がMerbを使ったアプリ作成を今でも楽しめているということで、http://engineyard.com/soloでもMerbを使っています。Merbを使ったアプリを作るのに何か足りない機能や大きなバグがあるとは感じませんでした。
RailsConf '09でのDavid Heinemeier Hansson氏の講演からもRails 3についての計画をうかがい知ることができる。