2016/08/16分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #25570 from y-yagi/remove_useless_parameter
activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb
の修正です。
Module#thread_mattr_accessor
メソッドから、使用していないblock引数を削除しています。
Merge pull request #26160 from prathamesh-sonpatki/use-encoding-from-metal
actionpack/lib/action_controller/metal/parameter_encoding.rb
の修正です。
ActionController::ParameterEncoding#encoding_for_param
メソッドでparameter encodingが指定されてない場合に、Encoding::UTF_8
を返すようになっていたのを、親クラスのメソッドを呼び出すよう修正しています。
if @_parameter_encodings[action.to_s] && @_parameter_encodings[action.to_s][param.to_s] @_parameter_encodings[action.to_s][param.to_s] else - ::Encoding::UTF_8 + super end
ActionController:Metal
でデフォルトのencodingは定義済みなので、そちらを使用する為にとの事です。
Clarify use of update task on 4.2 and earlier [ci skip]
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
The Update Task
の項の、rails:update
taskについて説明している箇所に、rake
コマンドを追加しています。
actionpack/lib/action_controller/metal/live.rb
の修正です。
ActionController::Live::SSE#write
でデータを書き込み後にconstantのloadを行った際に、deadlockが発生してしまうバグがあったのを修正しています。
マルチスレッドで処理を行っている際にload処理を行う事を許可する為のメソッドの呼び出しが不足していた為発生してしまっていたようです。
Eager autoload ActiveRecord::TableMetadata
activerecord/lib/active_record.rb
の修正です。
ActiveRecord::TableMetadata
をeager autoloadするよう修正しています。
Active Job 経由でActive Recordにアクセスした場合に、ActiveRecord::TableMetadata
がloadされておらずエラーになるバグがあった為修正されています。
rubocopのルールにStyle/SpaceBeforeBlockBraces
、Style/SpaceInsideBlockBraces
、Style/SpaceInsideHashLiteralBraces
を追加、及びアプリ全体に左記ルールを適用しています。
Merge pull request #26130 from yui-knk/drop_table
railties/test/json_params_parsing_test.rb
の修正です。
json paramsに関するテストの後処理で、テスト内で作ったテーブルを削除するよう処理を追加しています。
Merge pull request #26157 from y-yagi/remove_test_mailers_when_skipping_action-mailer
railties/lib/rails/generators/rails/app/app_generator.rb
の修正です。
skip-action-mailer
オプションを指定してRailsアプリを作成した際に、test/mailers
ディレクトリを削除するよう修正しています。
Merge pull request #26019 from agrobbin/schema-load-unique-column-indices
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
、
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
の修正です。
一つのカラム対して複数のindexを設定出来るよう対応しています。
ActiveRecord::Schema.define do create_table :sponsorships do |t| t.string "user_id" t.index ["user_id"], name: "index_sponsorships_on_user_id_unique", unique: true, where: "(status = 1)", using: :btree t.index ["user_id"], name: "index_sponsorships_on_user_id", using: :btree end end
上記のような使い方が出来るようになっています。なるほど。
Merge pull request #26162 from kamipo/take_respects_dirty_target https://github.com/rails/rails/commit/426ea715fd7522653c131076bd321e4caab40e8e
activerecord/lib/active_record/associations/collection_association.rb
、
activerecord/lib/active_record/associations/collection_proxy.rb
の修正です。
CollectionProxy#take
メソッドでdirty targetについての考慮がされてなかったのですが、#first
、#last
等はされていた為、処理を合わせる為#take
でもdirty targetを正しく取得出来るよう修正しています。
Merge pull request #26156 from sfaxon/route_visualizer_fix
actionpack/lib/action_dispatch/journey/router.rb
の修正です。
ActionDispatch::Journey::Router#partitioned_routes
メソッドで既に存在しないRoutes#partitioned_routes
メソッドを使用していたのを、使用しないよう修正しています。
Merge pull request #26155 from kamipo/refactor_quoted_columns_for_index
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
、
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
ActiveRecord::ConnectionAdapters::SchemaStatements#quoted_columns_for_index
メソッドをリファクタリングし、optionに関する処理を#add_options_for_index_columns
メソッドに切り出しています。
Merge pull request #26151 from kamipo/avoid_to_allow_unused_splat_args
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
、
activerecord/lib/active_record/migration/compatibility.rb
の修正です。
create_table
のtimestamps
にはsplat argsが渡せるようになっているのですが、change_table
のtimestamps
には渡せないようになっていない、かつ、splat argsは使用していない為、create_table
の方のtimestamps
にもsplat argsは渡せないよう修正しています。
Merge pull request #26097 from Dagnan/fix_recordnotfound_args_rebased
activerecord/lib/active_record/relation/finder_methods.rb
の修正です。
association経由でfind
を行い、かつ、recordが存在せずRecordNotFound
が発生した場合に、エラーになったクラスのmodel、primary_key、idが取得出来なかったのを、値を取得出来るよう修正しています。
association.find(0) # before exception.inspect #=> #<ActiveRecord::RecordNotFound: Couldn't find Client with 'id'=0 [WHERE \"companies\".\"type\" IN ('Client', 'SpecialClient', 'VerySpecialClient') AND \"companies\".\"firm_id\" = ? AND \"companies\".\"type\" IN ('Client', 'SpecialClient', 'VerySpecialClient')]> exception.id # => nil exception.model #=> nil exception.primary_key #=> nil # after exception.inspect # => #<ActiveRecord::RecordNotFound: Couldn't find Client with 'id'=0 [WHERE \"companies\".\"type\" IN ('Client', 'SpecialClient', 'VerySpecialClient') AND \"companies\".\"firm_id\" = ? AND \"companies\".\"type\" IN ('Client', 'SpecialClient', 'VerySpecialClient')]> exception.id # => 0 exception.primary_key # => "id" exception.model # => "Client"
Merge pull request #26074 from kamipo/where_by_attribute_with_array_or_range
activerecord/lib/active_record/relation/predicate_builder.rb
の修正です。
predicate builderにarray
、range
attribtueの値を渡した際に正常にbuild処理が行われてなかったのを修正しています。
Merge pull request #26117 from kamipo/make_association_quary_to_preparable_step1
activerecord/lib/active_record/relation/predicate_builder.rb
の修正です。
ActiveRecord::PredicateBuilder
クラスのリファクタリングを行っています。
現状、association queriesにprepared statementが使われておらず、association queriesでもprepared statementが使われれるようにする為の対応の第一弾との事です。
Add array column documentation
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
のdocの修正です。
add_column
メソッドのdocにadd_column
メソッドにarray: true
オプションを指定した場合の説明を追加しています。
Merge pull request #26094 from igorkasyanchuk/master
actionpack/lib/action_controller/log_subscriber.rb
、
actionpack/lib/action_controller/metal/strong_parameters.rb
の修正です。
Unpermitted parameterをログに出力する際に、parameterをSymbolとしてログに出力するよう修正しています。そのままコピーして使えるようにしたい為、との事です。
Merge pull request #26175 from stomar/upgrade-guide-fix
rails guideのA Guide for Upgrading Ruby on Rails
の修正です。
Active Record Models Now Inherit from ApplicationRecord by Default
の項に、全てのmodelの親クラスを変更する必要がある旨説明を追加しています。
Merge pull request #26061 from malclocke/specify_ar_message_interpolation_names_in_i18n_guide
rails guideのRails Internationalization (I18n) API
の修正です。
Error Message Interpolation
の項に、model nameはmodel
、attribute nameはattribute
、valueはvalue
でそれぞれ値を参照出来る旨説明を追加しています。
Makes touch_later respects no_touching policy
activerecord/lib/active_record/base.rb
、
activerecord/lib/active_record/no_touching.rb
の修正です。
touch_later
メソッドを実行する際に、no_touching
の設定を確認し、no_touching
がtrueの場合はtouch処理を行わないよう修正しています。