1. Rails 4.0 概要
2013/10/03 シナジーマーケティング(株) 鈴木 圭
[Rails 4.0] 第1章 Rails 4.0 概要
- 1.1. はじめに
- 1.2. ハイライト
- 1.3. 外部ライブラリ化された機能
- 1.4. 残された課題
- 1.5. まとめ
1.1. はじめに
2013/6/25 にリリースされた Ruby on Rails 4.0 はいくつかの新機能と数々の更新が含まれています。
全体的な概要は TECHSCORE BLOG の「Rails4 社内勉強会レポート」をご覧ください。プレゼン資料なので細かい情報は含んでいませんが、全体を俯瞰することができます。
本記事では各機能の具体的な使い方を中心に解説します。
1.2. ハイライト
Rails4.0 のリリースノートでは、以下の目玉機能が取り上げられています。
- Ruby2.0 推奨、1.9.3 以降をサポート
- Strong Parameters
- Turbolinks
- Russian Doll Caching
Rails4.0 がまだ Release Candidate だった頃、2013 年の初めの頃は Ruby1.9.3 以降をサポートとされていました。それからしばらく経った 2013/2/24 に Ruby2.0 がリリースされました(2013/2/24 は Ruby 20 歳の誕生日です)。その後 1.9.3 以降をサポートとしつつ、推奨は Ruby2.0 となりました。
Strong Parameters と Turbolinks、Russian Doll Caching はそれぞれ Rails4.0 で登場した新機能です。
Strong Parameters はコントローラで受け付けるリクエストパラメータをホワイトリスト形式で指定する機能を提供します。Turbolinks は Ajax でページ本体を入れ替えることで、画面遷移せずに表示内容を切り替えることができる大胆な機能を提供します。Russian Doll Caching はネストしたフラグメントキャッシュの扱いを改善します。
上記以外にも新機能や改善された機能、非推奨となった機能など数多くの変更がありますので、、順を追ってご紹介していきます。
1.3. 外部ライブラリ化された機能
- Hash-based & Dynamic finder methods (activerecord-deprecated_finders)
- Mass assignment protection in Active Record models (protected_attributes)
- ActiveRecord::SessionStore (activerecord-session_store)
- Active Record Observers (rails-observers)
- Active Resource (activeresource)
- Action Caching (actionpack-action_caching)
- Page Caching (actionpack-page_caching)
- Sprockets (sprockets-rails)
- Performance tests (rails-perftest)
外出しされた理由は様々です。非推奨となったために切り出されたものもあれば、独立性を高めるために切り出されたものもあります。
使用したいライブラリについては Gemfile で指定することで利用することができるようになりますが、activerecord-deprecated_finders と sprockets-rails については Rails 本体が依存しているため Gemfile に追加する必要はありません。
Hash-based & Dynamic finder methods (activerecord-deprecated_finders) については注意が必要です。ライブラリ名に「deprecated」が含まれていることからも想像できますが、非推奨機能がライブラリ化されたものです。Rails4.0 では Gemfile に追加しなくてもその機能を使うことができます(使用すると警告が出力されます)が、Rails4.1 からは明示的に Gemfile に追加しなければ使用できないようになります。また、Rails5 が登場するまでしかメンテナンスされないとアナウンスされていますので、新しいコードでは使用しない方が良いでしょう。
2.4. 残された課題
いくつかの新機能と数多くの改良が行われた Rails4.0 ですが、残念ながらリリースから外された機能もあります。
それは非同期処理と Job/Queue システムです。それらの機能は「十分に洗練されていない」「開発者間の合意が十分に取れなかった」などの理由で Rails4.0 のリリース前にマスターブランチから外されました。
決して根本的な問題があったわけではありませんので今後に期待しましょう。
2.5. まとめ
今回は Rails4.0 への導入として、概要の説明を行いました。
次回は全体的な変更点を解説します。