2015/10/27分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Exit with non-zero status for failed database rake tasks.
- Add option to index errors in nested attributes
[ci skip] Fix method documentation location
activerecord/lib/active_record/associations/preloader.rbの修正です。
Preloader#preloadメソッドの実装とdocの間にNULL_RELATION定数があったのを、定数の位置を動かして、実装とdocが連続するよう修正しています。
Merge pull request #19924 from iamvery/db-tasks-exit-status
activerecord/lib/active_record/tasks/database_tasks.rb、
activerecord/lib/active_record/tasks/sqlite_database_tasks.rbの修正です。
DBのcreate / drop用rakeタスクで、処理が失敗した場合に、exit statusに0ではなく1を設定するよう修正してます。
&&で複数のコマンドまとめて実行する(bin/rake db:setup && bin/rspecとか)際に、exit statusが0だと正常と判定されて不味いんですねえ。
Edits default config/boot.rb to match what's generated by Rails 4.2.
rails guideのThe Rails Initialization Processの修正です。
guideに記載されているconfig/boot.rbの内容を、実際生成されるconfig/boot.rbの内容と合わせるよう修正しています。
Merge pull request #19686 from tsun1215/index_errors
activerecord/lib/active_record/associations/builder/has_many.rb、
activerecord/lib/active_record/autosave_association.rbの修正です。
nested attributesでエラーになった際に、エラーメッセージにインデックスを表示出来るよう対応しています。
例。
class Guitar < ActiveRecord::Base has_many :tuning_pegs, index_errors: true accepts_nested_attributes_for :tuning_pegs end class TuningPeg < ActiveRecord::Base belongs_to :guitar validates_numericality_of :pitch end
# 元々のエラーメッセージ(インデックス無し) `guitar.errors["tuning_pegs.pitch"] = ["is not a number"]` # 対応後(インデックスあり) `guitar.errors["tuning_pegs[1].pitch"] = ["is not a number"]`
インデックスの表示はデフォルトではfalseになっており、associationsにindex_errorsオプションを指定するか、または、グローバルのconfig.active_record.index_nested_attribute_errorsにtrueを設定すると表示されるようになります。
[ci skip] Add doc to preloaders_on
activerecord/lib/active_record/associations/preloader.rbのdocの修正です。
Preloader#preloaders_onメソッドにdocを追加しています。
[ci skip] Clarify doc for preloaders_for_one
activerecord/lib/active_record/associations/preloader.rbのdocの修正です。
Preloader#preloaders_for_oneメソッドのdocにロード処理についての説明、及び各preload classのrunメソッドが呼ばれる旨説明を追加しています。
[ci skip] Add doc for preloader_for
activerecord/lib/active_record/associations/preloader.rbのdocの修正です。
Preloader#preloaders_forメソッドにdocを追加しています。
Merge pull request #21994 from mtodd/inherit-scopes
activerecord/test/cases/inheritance_test.rbの修正です。
scopeの継承についてのテストが正しく行われていなかった(ActiveRecord::Relationはlazily loadの為、実際の処理を呼び出さないと評価されなかった)のを修正しています。
が、テストが直した結果テストが壊れてしまった為、直後にrevertされています。
Revert "Merge pull request #21994 from mtodd/inherit-scopes"
というわけで、テストが壊れてしまった為、直前のコミットをrevertしています。
Remove skipped JRuby tests that are passing on 9.0.3.0.
Action Packの修正です。
幾つかのテスト(static fileに英語名のファイル名を指定したテスト、content typeにutf-16を指定したテスト等)がJRubyで動かないのでスキップしていたのですが、JRuby 9.0.3.0では動作するようになっていたので、スキップ処理を削除しています。
raise ArgumentError when SECRET_KEY_BASE is an integer
railties/lib/rails/application.rbの修正です。
SECRET_KEY_BASEにstring以外の値が指定された場合に、ArgumentErrorをraiseするよう修正しています。
[ci skip] Aline code examples in AR changelog
activerecord/CHANGELOG.mdの修正です。
CHANGELOG内のexampleコードのインデントを整理しています。