2017/04/27分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
rails guideのRuby on Rails 5.1 Release Notes
の修正です。
broadcasting
をbroadcasing
にタイポしていたのを修正しています。
Lock connection before checking it in
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
の修正です。
database connectionをpoolにcheck-inする際に、ロックをかけるよう修正しています。
fixturesのインサート処理等のように、一時的に外部キー制約を無効にしたい場合、PostgreSQLではDISABLE TRIGGER ALL
を使用するようになっていたのを、SET CONSTRAINTS ALL DEFERRED
が使用出来る場合(9.4.2以上)の場合、そちらを使用するよう修正した、Merge pull request #27636 from mtsmfm/disable-referential-integrity-without-superuser-privilege-take-2をrevertしています。
“SET CONSTRAINTS ALL DEFERRED"で遅延させる事が出来るのは"NO ACTION”(デフォルト)のみで、それ以外の検査(“RESTRICT"等)は遅延させる事が出来ず、外部キー制約違反でエラーになってしまう為、との事です。
参考:CREATE TABLE、データベース PostgreSQL 制約 - s-kitaの日記
Some improvements in the 5.1 release notes [ci skip]
rails guideのRuby on Rails 5.1 Release Notes
の修正です。
各項のフォーマット、グラマーの修正等をまとめて行っています。
Add some items to the release notes [ci skip]
rails guideのRuby on Rails 5.1 Release Notes
の修正です。
各コンポーネントの項にエントリーを追加しています。
More release notes for Rails 5.1 [ci skip]
rails guideのRuby on Rails 5.1 Release Notes
の修正です。
各コンポーネントの項にエントリーを追加しています。
rails guideのRuby on Rails 5.1 Release Notes
の修正です。
assert_changes
及びassert_no_changes
を追加した対応のエントリーのグラマーの修正を行っています。
Do not try to encoding the parameters when the controller is not defined
actionpack/lib/action_dispatch/http/parameters.rb
の修正です。
controllerクラスが存在しないページを表示しようとした場合に、development環境で、エラーページではなく500エラーが表示されてしまうバグがあったのを修正しています。
parametersのencodingを取得する際にcontrollerクラスが存在しない事を考慮して無かったのが問題だった為、controller classが存在しない(NameError
)が発生した場合の処理を追加し対応しています。
Merge pull request #28891 from sodabrew/patch-1
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
databse configファイルにusername
が指定されてなかった場合に、デフォルトでusernameにroot
を設定する、という処理があったのを削除しています。昔のコードがそのまま残ってしまっていた感。
Merge pull request #28847 from Edouard-chin/current-page-checkquery-string
actionview/lib/action_view/helpers/url_helper.rb
の修正です。
current_page?
メソッドの引数にActive Recordのオブジェクトを渡した場合にArgumentError
が発生してしまうバグがあったのを修正しています。
- check_parameters ||= !options.is_a?(String) && options.try(:delete, :check_parameters) + check_parameters ||= options.is_a?(Hash) && options.delete(:check_parameters)
元の処理ではcurrent_page?
の第一引数のoptions
がStringで無かった場合、delete
メソッドを呼び出すようになっていました。が、options
にARのオブジェクトを渡した場合、ARのdeleteメソッドが呼ばれしまい、エラーになってしまっていた為、options
がHash
の場合のみcheck_parameters
の取得を行うよう修正しています。
Merge pull request #28885 from kamipo/remove_useless_test_case
activerecord/test/cases/associations/has_many_associations_test.rb
の修正です。
association
に対してprivateメソッドが呼べる事を確認するテストを削除しています。現状privateメソッドは呼べない(public_method
を使っているので)ので、削除したとの事です。
Merge pull request #28244 from ixti/improve/action-mailer-preview-params
Action Mailer及びrailtiesの修正です。
ActionMailer::Preview
にrequest parameterを渡せるように修正しています。
http://localhost:3000/rails/mailers/user_mailer/password_recovery?email=alice@foobar.com
のように普通にget parameterに指定可能で、previewクラスの中ではparams
で参照可能になっています。
Merge pull request #28881 from bogdanvlviv/verbose-migration
activerecord/lib/active_record/tasks/database_tasks.rb
の修正です。
ENV["VERBOSE"]
にfalse
以外の文字列を指定した場合に、全てtrueとして扱うよう修正しています。
- verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true + verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] != "false" : true
rails guide(http://edgeguides.rubyonrails.org/active_record_migrations.html)にfalse
を指定した場合のみ出力を抑圧する、という説明があり、そこの説明に合わせた形との事です。
Added a shared section to config/database.yml that will be loaded for all environments
railties/lib/rails/application/configuration.rb
の修正です。
database.yml
に全ての環境で使用されるshared
セクションを追加しています。
shared: username: bobby adapter: sqlite3 development: database: 'dev_db'
Added a shared section to config/secrets.yml that will be loaded for all environments のdatabase.yml
版。
Merge pull request #28848 from Edouard-chin/ec-remove-unused-method
actionview/test/template/url_helper_test.rb
の修正です。
使用されていないsort_query_string_params
メソッドを削除しています。
Merge pull request #28883 from yahonda/fix28797
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
の修正です。
CURRENT_DATE
、CURRENT_TIMESTAMP
という文字もdefault functionとみなすよう修正しています。
def has_default_function?(default_value, default) - !default_value && (%r{\w+\(.*\)|\(.*\)::\w+} === default) + !default_value && %r{\w+\(.*\)|\(.*\)::\w+|CURRENT_DATE|CURRENT_TIMESTAMP}.match?(default) end
PostgreSQL 9まではCURRENT_DATE
は('now'::text)::date
に、CURRENT_TIMESTAMP
はnow()
に変換されていたのですが、PostgreSQL 10ではそのままCURRENT_DATE
、CURRENT_TIMESTAMP
として扱われるようになった為、対応追加したとの事です。
参考:Re: Keeping CURRENT_DATE and similar constructs in original format
Restore fixtures :author_addresses
Active Recordのテストの修正です。
Revert “Merge pull request #27636 from mtsmfm/disable-referential-integrity-without-superuser-privilege-take-2”の対応の際に、必要なfixtureのloadもrevertしてしまっていた為、fixtureのload処理だけ戻しています。
Update the JavaScript guide to use form_with
rails guideのWorking with JavaScript in Rails
の修正です。
form_for
/ form_tag
について説明していた箇所を、form_with
について説明するよう修正しています。
Add a section with the different Ajax events [ci skip]
rails guideのWorking with JavaScript in Rails
の修正です。
Dealing with Ajax events
の項を追加し、
railsのAjax処理で発火されるイベントについての説明、及び、イベントを停止したい場合の対応方法についての説明を追加しています。
Nest Action View remote helpers one level deeper [ci skip]
rails guideのWorking with JavaScript in Rails
の修正です。
Built-in Helpers
の項にRemote elements
セクションを追加し、form_with
、link_to
等の説明はRemote elements
セクション配下で説明を行うよう修正しています。