2018/09/14分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Bump minimum MySQL version to 5.5.8.
- Allow subclasses to redefine autosave callbacks for associated records.
- SQLite3 adapter supports expression indexes
activestorage/CHANGELOG.md
activejob/lib/active_job/arguments.rb
のdocの修正です。
Intrinsic
をInstrinsic
にタイポしている箇所があったのを修正しています。
Merge pull request #33853 from yahonda/use_utf8mb4_only_if_available
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
サポートするMySQLのバージョンを5.1.10
以上から5.5.8
以上に修正しています。
Use utf8mb4 character set by default for MySQL database (#33608)でdefaultのcharsetがutf8mb4
に変更されたのですが、5.1系ではutf8mb4
は使用出来ないという問題がありました。その対応として、5.1系が使われた場合の対応を入れる事も検討されたのですが、5.1系は公式のサポートも切れているような古いバージョンなので、Railsも明確にサポートしないようになりました。
合わせて、innodb_large_prefix
が有効になっていない古い環境(MySQLだと5.7.8以下)でcharset
が指定されていない場合にエラーをraiseするよう修正しています。indexのkey長の問題がある為。
Revert falsey with example reordered
activesupport/lib/active_support/core_ext/object/blank.rb
のdocの修正です。
Object#blank?
メソッドのdocの言い回しの修正、exampleの順番の調整等を行っています。
add any?
to DatabaseConfigurations
activerecord/lib/active_record/database_configurations.rb
の修正です。
ActiveRecord::DatabaseConfigurations
クラスでany?
をconfigurations
にdelegateするよう修正しています。
Rails 6.0からActiveRecord::Base.configurations
が返す値がHash
からActiveRecord::DatabaseConfigurations
クラスのインスタンスに変更になっているのですが、ActiveRecord::Base.configurations.any?
という書き方をしている箇所がライブラリ(e.g. Spring)にあり、下位互換性の為にany?
を使えるようにしています。
Merge pull request #33378 from numbata/subclass-redefine-autosave-callbacks
activerecord/lib/active_record/autosave_association.rb
の修正です。
subclassで、associated recordsのautosave callbackを再定義出来るよう修正しています。
subclassで親に定義されているassociationを再定義 + accepts_nested_attributes_for
を使用する、というような場合に正しく動作するようにする為。
SQLite3 adapter supports expression indexes
activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb
、
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
の修正です。
SQLite3 adapterにexpression indexesのサポートを追加しています。
例。
create_table :users do |t| t.string :email end add_index :users, 'lower(email)', name: 'index_users_on_email', unique: true
Merge pull request #33569 from eric-hemasystems/conditional-flash-helper
actionpack/lib/action_controller/metal/flash.rb
の修正です。
Flash.add_flash_types
メソッドでhelper_method
を呼び出す前に、helper_method
が定義されているかチェックするよう修正しています。
helper_method
が無い状態(ActionController::Metal
に直接ActionController::Flash
をincludeして使う場合)でもエラーにならないようにする為。
Bump MySQL version requirement to 5.5.8 in the template files
railties/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt
、
railties/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt
の修正です。
template fileに記載されているサポートしているMySQLのバージョンを5.5.8
以上に修正しています。
Enable sudo
only in the required build
.travis.yml
の修正です。
全てのbuildでsudo
が有効になっていた(Sudo-enabled infrastructureが使われていた)のを、sudo
が必要なbuildでだけsudo
を有効化するよう修正しています。
Sudo-enabled infrastructureだとPostgresSQLのisolationテストがdiskの問題でエラーになってしまう為。
Make sure the flash method is defined even if helpers are not present
actionpack/lib/action_controller/metal/flash.rb
、
actionpack/test/controller/flash_test.rb
の修正です。
Merge pull request #33569 from eric-hemasystems/conditional-flash-helperのfollow upとして、helper_method
が無い状態でもflashのメソッドは呼べるよう対応しています。
Remove mysql2 gem version requirement "< 0.6.0"
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
、
railties/lib/rails/generators/app_base.rb
の修正です。
mysql2 gemを指定するのにバージョンロック(gem "mysql2", ">= 0.4.4", "< 0.6.0"
)を指定していたのを、上限の指定は外すよう修正しています。
SQLite3: Support multiple args function for expression indexes
activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb
、
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
の修正です。
SQLite3 adapterのexpression indexesに指定するfunctionに、引数を複数指定出来るよう修正しています。
Add :redis_cache_store
to config.cache_store
options [ci skip]
rails guideのConfiguring Rails Applications
の修正です。
config.cache_store
オプションに指定可能な値の一覧に:redis_cache_store
を追加しています。
Configure Active Storage route prefix
Active Storageの修正です。
Active Storageが生成するroutesのprefixが/rails/active_storage
固定だったのを、任意のprefixを指定出来るよう修正しています。prefixはconfig.active_storage.routes_prefix
で指定出来るようになっています。
config.active_storage.routes_prefix = '/files'
$ ./bin/rails routes -c active_storage Prefix Verb URI Pattern Controller#Action rails_service_blob GET /files/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /files/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /files/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /files/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /files/direct_uploads(.:format) active_storage/direct_uploads#create