2014/05/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです(詳細は本文参照)。
- Floats with limit >= 25 that get turned into doubles in MySQL no longer have their limit dropped from the schema.
- Fix 'Stack level too deep' when rendering
head :ok
in an action method called 'status' in a controller.
Changed extract_limit in class Column to return correct mysql float and double limits
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
MySQLでdouble型を使用したいとき、マイグレーションファイルにlimit: 53
を指定するのですが、この情報はschema.rb
に記載されませんでした。
なので、開発環境でlimit: 53
を指定して作成したschema.rb
を、違う環境でrake db:setup
すると、double型ではなくfloat型になってしまう問題があり、この問題を修正しています。
# before t.float "point" # after t.float "point", limit: 53
合わせて、floatについてもlimit
値をschema.rb
に記録されるよう修正しています。
fixes stack level too deep exception on action named 'status' returning 'head :ok'
actionに以下のメソッドを定義した際に、stack level too deep exception
が発生するバグの修正です。
def status head :ok end
ActionController::Head#head
メソッドでself.status
を参照していて、呼び出しが再帰になってしまってたんですね。なるほど。
Small refactoring on clear_transaction_record_state
activerecord/lib/active_record/transactions.rb
の修正です。
committed!
メソッドの中で行っていた@_start_transaction_state.clear
をclear_transaction_record_state
メソッドの中で行うよう修正しています。
処理の集約ですかね。
Clear transaction state if callback raise rollback
ActiveRecord::Transactions::ClassMethods#with_transaction_returning_status
メソッドの修正です。
callback処理の中でrollbackが行われた際に、stateをクリアするよう修正しています。
formatting pass through CHANGELOGS. [ci skip]
各CHANLOGの修正です。
ピリオド追加したり、セミコロン追加したり等。