Ruby on Rails 3 の情報

Rails 3が、いよいよ正式版になったので、それについての情報を書いていこうかと思います。

  • 2.3系からの主な変更点
    • Ruby 1.9に正式対応
    • 今までscript/generateやscript/serverなどのコマンド類がrailsコマンドから呼び出す方式に変更
    • ずいぶんとrakeタスクが削られたというか、結構裏でタスクは生きてるようで、-Tで一覧に出なくなっただけ?
    • 新しいActive Record query engine

      という感じで、今までのHashを渡す形式から、検索の条件やらなにやらをnamed_scopeのように書く方式になった。
    • 新しいroutes

      2.3系と比べるとmap.がなくなり、すっきり書ける。
    • 新しいAction Mailer
    • 使用するライブラリ類をBundlerで管理
    • クロスサイトスクリプティング対応
      今までは<%= user.name %>なんてやるところには常に<%= hを付けなければいけなかったが、Rails 3では、逆に生データを出す場合に<%= raw user.name %>となる。
    • Active Model
      今まで、ActiveRecordではないデータをformで送信する場合、ActiveRecordのようなバリデーションが使えず、エラーチェックを組み込むのが一苦労だったが、ActiveModelで、その問題が解決されそうだ。
    • 速度向上
      今回のバージョンアップは、Merbとの統合という大きな改革の上で完成した物で、RailsというよりはMerbの進化形をRails 3にしたような内容となっている。Merbは軽量、速度重視で作られているため、今回のRails 3は大幅にパフォーマンスが向上しているらしい。
    • アプリの名前がクラス名になる
      ので、内部でクラス作る時に考慮する必要有り
    • 以降調査中