2015/12/31分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #22241 from kamipo/add_columns_for_distinct_for_mysql57
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
MySQLのadapterに、引数のカラム名とORDER BY
句からSELECT DISTINCT
の為のカラムを生成する#columns_for_distinct
メソッドを追加しています。
元々はORDER BY句の値に関係無く引数のcolumnsの値をそのまま返すだけだったのですが、MySQL 5.7.5から、ONLY_FULL_GROUP_BY
がSELECT DISTINCT
とORDER BY
句にも影響を与えるようになり、ORDER BY
句に指定したカラム名をSELECT DISTINCT
に指定する必要が出来た為、ORDER BY
句に指定したカラム名も返すようメソッドを追加したようです。
# before ActiveRecord::Base.connection.columns_for_distinct("posts.id", ["posts.created_at desc", "posts.position asc"]) #=> "posts.id" # after ActiveRecord::Base.connection.columns_for_distinct("posts.id, posts.name", ["posts.created_at desc", "posts.id"]) #=> "posts.id, posts.name, posts.created_at AS alias_0, posts.id AS alias_1"
参考:MySQL :: MySQL 5.7 Reference Manual :: 12.20.3 MySQL Handling of GROUP BY
Fix test for AC::Parameters#to_unsafe_h
actionpack/test/controller/parameters/parameters_permit_test.rb
の修正です。
ActionController::Parameters#to_unsafe_h
メソッドのテストで、ActionController::Parameters#to_h
メソッドを使用してしまっていたのを、正しく#to_unsafe_h
メソッドを使用するよう修正しています。
Avoid Time.parse
for static date
actionpack/lib/action_controller/metal/conditional_get.rb
の修正です。
固定の値からTime
インスタンスを生成するのに、Time.parse
を使用していたのを、Time.new
を使用するよう修正しています。
yield if stale?(etag: "#{version}-#{request.fullpath}", - last_modified: Time.parse('2011-01-01').utc, + last_modified: Time.new(2011, 1, 1).utc,
Time.new
の方が早い為、との事です。コミットログに記載されてあったベンチマークは下記の通りです。
Benchmark.ips do |x| x.report('Time.parse') { Time.parse('2011-01-01') } x.report('Time.new') { Time.new(2011, 1, 1) } end
Calculating ------------------------------------- Time.parse 6.640k i/100ms Time.new 15.082k i/100ms ------------------------------------------------- Time.parse 71.915k (± 3.1%) i/s - 365.200k Time.new 167.645k (± 3.3%) i/s - 844.592k
Add sass-rails back to the default Gemfile
railties/lib/rails/generators/app_base.rb
の修正です。
デフォルトのGemfileにsass-rails
が記載されるよう修正しています。
Use sprockets 3 in the Rails 5 release · rails/rails@877a411で誤って削除してしまい、それを戻したとの事です。
[ci skip] Update rails/all.rb reference.
rails guideのThe Rails Initialization Process
の修正です。
railties/lib/rails/all.rb
のコードを記載している箇所が、実際のコードの異なっていたのを、実際のコードと同じ内容に修正しています。
[ci skip] Space out framework names in USAGE
railties/lib/rails/generators/rails/model/USAGE
、
railties/lib/rails/generators/rails/scaffold/USAGE
の修正です。
Active Model
をActiveModel
に、Active Record
をActiveRecord
にそれぞれタイポしている箇所があったのを修正しています。
rails guideのA Guide to Testing Rails Applications
の修正です。
What to Include in your Functional Tests
の項で、scaffold_controller
の実行例を記載している箇所でbody:text
をbody:test
にタイポしていたのを修正しています。
Fix collection_radio_buttons' hidden_field name and make it appear before the radios
actionview/lib/action_view/helpers/tags/collection_check_boxes.rb
、
actionview/lib/action_view/helpers/tags/collection_helpers.rb
の修正です。
collection_radio_buttons
メソッドでhidden fieldのnameに不要な[]
がついてしまったのを削除、及び実際のtagより先にhidden fieldを表示するよう修正しています。hidden fieldタグで実際の値の方を上書きしてしまうのを防ぐ為、のようです。
Merge pull request #12877 from aroben/extended-graphemes
activesupport/lib/active_support/multibyte/unicode.rb
の修正です。
ActiveSupport::Multibyte::Unicode
moduleに、拡張書記素クラスタ(extended grapheme cluster)とUnicode標準附属書29(UAX #29)のサポートを追加しています。
Add CHANGELOG entry for #12877 [ci skip]
先のunicodeの対応についてCHANGELOGに追記しています。
Merge pull request #22826 from timrogers/actiondispatch-ssl-config
actionpack/lib/action_dispatch/middleware/ssl.rb
の修正です。
ActionDispatch::SSL
クラスで、secure cookiesを使用するかどうかを#new
メソッドのsecure_cookies
引数で指定出来るよう対応、及び#new
メソッドのredirect
引数がnil / falseだった場合、httpからhttpsへの強制redirect処理は行わないよう対応しています。
Merge pull request #22105 from morgoth/fix-errors-details-on-autosave-associations
activerecord/lib/active_record/autosave_association.rb
の修正です。
Autosave Associationを使用していエラーになった際に、Add ActiveModel::Errors#details
にそのエラー情報の詳細が格納されないバグがあったのを修正しています。
Lets not put fullstop at the end of a migration pending command
activerecord/lib/active_record/migration.rb
の修正です。
PendingMigrationError
が発生した場合のエラーメッセージにの末尾からピリオドを削除しています。
- super("Migrations are pending. To resolve this issue, run:\n\n\tbin/rails db:migrate RAILS_ENV=#{::Rails.env}.") + super("Migrations are pending. To resolve this issue, run:\n\n\tbin/rails db:migrate RAILS_ENV=#{::Rails.env}")
表示されたメッセージを使用して再実行するのに、あると邪魔だから、という理由のようです。
Fix AC::Parameters#to_unsafe_h to return all unfiltered values
actionpack/lib/action_controller/metal/strong_parameters.rb
の修正です。
ActionController::Parameters
の値がnestしたActionController::Parameters
だった場合に、ActionController::Parameters#to_unsafe_h
がpermitしていない値をかえさないバグがあったのを修正しています。
foo = ActionController::Parameters.new("f"=>{"language_facet"=>["Tibetan"]}) foo['f'].class #=> ActionController::Parameters # before foo.to_unsafe_h #=> {"f"=>{}} # after foo.to_unsafe_h #=> {"f"=>{"language_facet"=>["Tibetan"]}}