とっくに3.2.9が出てますが、ざっと眺めたのでメモ。
Riding Rails: Rails 3.2.9.rc1 has been released!
なんだか、小さい修正とbug fixが沢山といった印象です。
もっとさらっと読み飛ばしてもよかったなぁ。
CHANGES since 3.2.8
Action Pack
・link_toのremoteオプションに:remoteを追加(PR#7865)
・viewのテストケース以外でassert_templateに:localsオプションを設定していると警告を表示するように修正(#3415、PR#7848)
・ActionController::TemplateAssertions競合のあった内部変数名を修正(2bad605)
※3.2.9.rc2でrevertされています!
・resource と resourcesの中でoptionが変更されていたのをメソッド内でdupするようにしています。(3b5bc8d)
・Precompiled assets include aliases from foo.js to foo/index.js and vice versa.(19987b6)
precompileで設定した値に/index.cssみたいなのが利用できるっぽい。
# Precompiles phone-<digest>.css and aliases phone/index.css to phone.css. config.assets.precompile = [ 'phone.css' ] # Precompiles phone/index-<digest>.css and aliases phone.css to phone/index.css. config.assets.precompile = [ 'phone/index.css' ] # Both of these work with either precompile thanks to their aliases. <%= stylesheet_link_tag 'phone', media: 'all' %> <%= stylesheet_link_tag 'phone/index', media: 'all' %>
・assert_templateがより厳格になったようです。(#3849)
※3.2.9.rc2でrevertされています!
/layout/hello.html.erb が存在していた場合、
これまでは、これでもOKでしたが
assert_template "layout" assert_template "out/hello"
これからは、これでないとダメ。
assert_template "layout/hello" assert_template "hello"
・Handle ActionDispatch::Http::UploadedFile like Rack::Test::UploadedFile,
don't call to_param on it. Since Rack::Test::UploadedFile isn't API compatible
this is needed to test file uploads that rely on tempfile being available(c53e5de、brynary/rack-test #30)
これよくわからん。
・:moduleオプションを指定するroutesのshorthandのBugfix(#6497)
shorthandだと、moduleオプションが効いていなかったみたい。
※rc3でrevertされています!
・Respect config.digest = false for asset_path(1ac19c1)
config.digest = false と config.compile = false が併用できなかったみたい。
・ログにstatusコードを正しく表示するように修正(dd76b3b、#7646)
404でも500になってたっぽい。
・日付選択でdisabled and discard オプションを併用するとバグってたっぽい(dcb2bee)
・select_tagの第2引数がnilだとExceptionエラーが発生していたようです。ちなみに3.2.7では問題無し。(#7404)
・Support cookie jar options (e.g., domain :all) for all session stores. Fixes GH#3047, GH#2483.
独自のsession store利用時に[domain :all]みたいなoptionが利用できなかったみたい。
(CookieJarってclassか)
・send_fileのパフォーマンス改良
いちいちファイルをopenしていたのをRack::Sendfileに任せた模様。
Rack::Sendfileをどこでどうしているのか、よくわからん。
Active Model
・builderでのnil/空文字の際、閉じタグの出力方法を変更
# before <pseudonyms nil=\"true\"></pseudonyms> # after <pseudonyms nil=\"true\"/>
Active Record
・update_columns、update_column 主キーが変更できるようになりました。(Bugfix扱い cdfa4a5)
・DBの接続項目(password)に特殊文字を使うとencodeされていたのでdecodeするように修正(f96b410)
・Synchronize around deleting from the reserved connections hash. Fixes
詳しくはわかんないけどconnection release時に同期できていなかったっぽい。(#7955)
・PostgreSQLで複数schemaを使用した場合のバグ修正のようです(#7914)
・Fix deprecation notice when loading a collection association
that selects columns from other tables, if a new record was previously built using that association.
(84c3774)
・PostgreSQLでprimary_keyに大文字が利用できなかったのを修正(#5920)
・countメソッドで親レコードが保存されていなければ、0を返すように修正。
length with always load the objects and use Array#length count will always do a SQL count size will check whether the collection is loaded, and use it, otherwise will do a count.
・has_many :thoroughでreset_countersがエラーとなっていたのを修正(#7822)
・mysql2のwait_timeoutとコンフリクトしていたためcheckout_timeoutとしているようです(390870)
・fieldというカラムが作成できるようにRename field_changed? to _field_changed?(#3544)
・未保存のhas_many :thoroughでcollection=[]とした場合に新規レコードが作成されなかったのを修正(#7661)
・通常のCRUD以外ではexplainしないように修正(#7544、#6458)
・Backport test coverage to ensure that PostgreSQL auto-reconnect functionality remains healthy.
(f48bb01)
・database.ymlで文字コードを指定する場合
charsetでなくencodingを使用するように修正
(#7572)
・ ConnectionAdapters::Columnのリファクタリング
type を to_iするところでrescureしていますが、to_iは文字でも0にキャストするので削除しています(#7582)
※rc2で追加修正あり
・time型のカラムで不正な値(parseできない)の場合にnilを返すようにしています
(#7337)
・STI使用時にbecomesにバグがあったようです(#7503)
・reset_countersで同一外部キーを参照していると問題があったようです(#5200)
・timestamp型の比較時にマイクロ秒の丸め方に問題があったようです
(reloadすると、mysqlではusecが0になるやら、何やら面倒そうです)
(#6975)
・Use inversed parent for first and last child of has_many association.(PR#7377)
※rc2で追加修正あり
・Column.microseconds and Column.fast_string_to_date(timeのような気がする)時に
to_fしていたため誤差が発生していたようです。
(PR#7352)
・increment!, decrement!, toggle! はcallbacksをskipしないように修正
具体的には、update_columnからupdate_attributeへ変更。
(#7306)
・create時にAR::RecordInvalid例外が発生した場合、idがnilだけど
作成成功のようになってしまっていたようです。(persisted?がtrueとなっていた)
(#3217)
・プロパティにnilを代入する際に不要なトランザクションが発行されていたのを修正
(#7191)
・ActiveRecord::Storeが空だとエラーとなっていたようです(#4840)
・postgreSQLのpool manager(pgBouncerみたいなの)を利用時に
prepared_statementが利用できない状態となっているらしく
system queryを投げる際にはprepared satementを利用しないように修正しています。(#5872)
・db:schema:load or db:structure:load 時に
config.active_record.schema_format = :sqlの場合
environmentの読み込みタイミングが遅かったようです。(#4772)
Active Support
・logger.push_tags、pop_tagsが追加されたようです(20f5f0)
・Add %:z and %::z format string support to ActiveSupport::TimeWithZone#strftime.(#6962)
assert_equal '+0900', twz.strftime('%z') assert_equal '+09:00', twz.strftime('%:z') assert_equal '+09:00:00', twz.strftime('%::z')