今まで Ruby on Rails 1.2 系を中心にプロジェクトでも進めてきましたが、そろそろ 2.0 系に移行しないといけないと思っているので、変更点についてまとめました。
2.0.1~2.0.4 までをまとめます。
2.0.1
- ruby-debugが利用可能になった
【利用方法】
1. ruby-debugインストール
# gem install ruby-debug
(ruby-debug-baseもインストールされます)
2. requireする
require 'ruby-debug'
3. デバッグするところでdebuggerを追加する
def hoge
debugger
end
4. サーバを再起動して、デバッグコマンドを入力する
list
デバッグしているところのソースを表示
p
p 変数名とすると、変数名の値を表示する
break
ブレークポイントを設定している一覧を表示する
(引数に行番号を指定すると新たにブレークポイントを設定できる)
del
引数に行番号を指定するとブレークポイントを削除する
cont
次のブレークポイントを実行する
h, help
コマンドで利用可能な一覧を表示する
- activewebserviceからactiveresourceに変更された
2.0 からはさらにRESTを意識したフレームワークになった。
- ルーティングの名前空間(調べる)
- テンプレートフォーマットの変更
ERBで利用するフォーマットが以下のように変更されました。
「index.rhtml」から「index.html.erb」
「index.rxml」から「index.atom.builder」
「index.xml」から「index.xml.erb」
「index.rjs」から「index.rs.rjs」
- BASIC認証モジュールが追加
通常のBASIC認証では .htaccess で設定しますが、Railsアプリケーション内で可能になりました。
class HogeController < only =""> :fuga
def fuga
render(:text => "BASIC認証のみ表示可能")
end
private
def auth
authenticate_or_request_with_http_basic do |user, pass|
user == 'kenjiro' && pass == 'kenjiro'
end
end
end
- JavaScript、CSSファイルをまとめて読み込み可能に
アプリケーションが大規模になると、JS、CSSファイルも増えてきますが、2.0 系からはアクセスを減らすために、読み込むファイルをまとめてできるようになりました。
テンプレートファイルでcacheを指定します。
<%= javascript_include_tag(:all, :cache => true) %>
public/javascript ディレクトリ内に all.js というファイルが作成されて、all.js ファイルのみ読み込まれます。
CSSファイルも同様です。
ただデフォルトでは production のみ適用されているので、config/environment/development.rb ファイルの設定を変更する必要があります。
config.action_controller.perform_caching = true
- 静的ファイルの提供元を別サーバに向けるasset_host(調べる)
- CSRF対策の変更
CSRF対策したいアクションを以下のように指定します。
protect_from_forgery :secret => 'kenjiro', :only => :index
- サニタイズ対策の変更
TextHelper#sanitizeのタグ指定の方法が、ブラックリストからホワイトリスト式に変更されました。
全体で設定する
Rails::Initializer.run do |config|
config.action_view.sanitized_allowed_tags = 'tr', 'td'
config.action_view.sanitized_allowed_attributes = 'id', 'class', 'style'
end
個別に設定する
<%= sanitize @obj.body, :tags => %w(tr td), :attributes => %w(id class style) %>
- 例外処理がコントローラ別に設定可能
rescue_from User::NotAuthorized, :with => :deny_acces
全体での指定は rescue_action_in_public があります。
プラグインをインストールして利用可能ですね。
- セッション管理がcookieに変更
ハッシュ形式でcookieに保存されます。
- リクエストプロファイラが追加(調べる)
HTML Render のベンチマークができるようになりました。
- Feed 生成の簡素化
- Query Cacheの追加
同じリクエストないからでは、キャッシュされた結果を返すように変更されました。
- Migration の記述が変更
t.column :hoge, :integer => t.integer :hoge
- to_json
JSON形式がシリアライズ可能になりました。
- ActiveRecordを軽量化
actis_as 系の機能がプラグイン化されました。
移行する場合、ここで動作しない可能性が高です・・・
- config/initializers
初期化する場合の設定ファイルを config/initializers に設置できるようになりました。
2.0.2
- デフォルトのデータベースがsqlite3に変更
プロジェクト作成時にデータベースを指定すれば任意のデータベースを利用可能になります。
- config.action_view.cache_template_loading = true が指定可能(調べる)
2.0.4
- REXML の脆弱性に対応
次回は 2.1.0 から 2.2.2 までの変更点をまとめます。
0 件のコメント:
コメントを投稿