なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2015/10/27)

2015/10/27分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


[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.rbactiverecord/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.rbactiverecord/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_errorstrueを設定すると表示されるようになります。


[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コードのインデントを整理しています。