Rails2.3.6〜2.3.8

ああ、いろいろ出てんな、でも忙しいやってことで
release note見てなかったんですが、
rails3の正式リリースが今週末と聞いて慌てて読みました。


Riding Rails: Ruby on Rails 2.3.6 Released
Riding Rails: Ruby on Rails 2.3.7 Released
Riding Rails: Ruby on Rails 2.3.8 Released


rails2.3.6は、もろもろ修正。
rails2.3.7は、rails_xssのバグ対応。だけどうっかり出しちゃったらしい。
rails2.3.8で対応完了。


なので、以下rails2.3.6の変更内容について、かなり適当ですが記載してみました。
英語弱いので、間違いなどあればご指摘いただけるとありがたいです。
押さえておくべき変更点が記載されているので、release note読むのはいいですね。
(あんまり多いと挫折してしまいますが)

Action Pack

Upgrade Rack from 1.0.1 to 1.1.0.
rails_xss がofficialになった

RailsXSSを試してみる - うんたらかんたら日記
この辺の話ですね。

permanent(or signed cookies ってあるけどよくわかんね)なcookieが作れる

こんな感じ。

cookies.permanent.signed[:remember_me] = current_user.id
flashのalertとnoticeがredirect_toで使用可能。

こんな感じ。

redirect_to post_url(@post), :alert => "Watch it, mister!"
  redirect_to post_url(@post), :status=> :found, :notice => "Pay attention to the road"
i18nのlabelが使えるようになった!

i18n その後 - うんたらかんたら日記
これですね。バンザーイ。

Active Record

model名にprefixが設定可能っぽい
self.table_name_prefix
Destroy時に楽観的ロックを使用するようになったとか
カウンタキャッシュの使い方が変わった

こんな感じ

Post.reset_counters(1234, :comments)

この辺りのが変わったのかな。
counter_cache - うんたらかんたら日記

PostgreSQL standard-conforming strings を使うようになったらしい

standard_conforming_strings

standard_conforming_stringsは、SQL文の文字列リテラルにあるバックスラッシュ「\」「\」をエスケープ文字ではなくリテラルとして扱うか否かを設定します。

MySQL index作成時にlength指定が可能になった

Commit 3616141fa2d2f35675d5962a1b329c8c51a5e9a3 to rails's rails - GitHub

MySQL add_ / change_column 時に :first / :after オプションが指定可能

まぁ、あんまいらんよね。

Active Support

Upgrade i18n from 1.3.3 to 1.3.7.
Upgrade TZInfo from 0.3.12 to 0.3.16.
Multibyte頑張ってます。(検証とか早くなった?)
JSONはYAJLってやつを使うようになった(なにそれ)

gem install yajl-ruby で。

test assert_blank と assert_present 追加
Object#singleton_class 追加
Object#presence 追加

resent? trueならobject、falseならnil

Enumerable#exclude? 追加
Array#rand から Array#random_element に名前変えたよ

Kernel#randと被っちゃうからね

Date/Time#last_(month|year) から #prev_(month|year) に名前変えたよ

Active Resource

ActiveResource::Base.include_root_in_json = true

にしておくと モデル名->項目のhashとしてシリアライズしてくれる。
(あってるか不安。あんまよくわかってない)

Action Mailer

Upgrade TMail from 1.2.3 to 1.2.7.

Railties

RubyGems1.3.6だとwarning出るよ?