• rails/rails

    Release notes

    Active Support

    • Add ActiveSupport::HashWithIndifferentAccess#assoc.

      assoc can now be called with either a string or a symbol.

      Stefan Schüßler

    • Fix String#safe_constantize throwing a LoadError for incorrectly cased constant references.

      Keenan Brock

    • Allow Range#=== and Range#cover? on Range

      Range#cover? can now accept a range argument like Range#include? and Range#===. Range#=== works correctly on Ruby 2.6. Range#include? is moved into a new file, with these two methods.

      utilum

    • If the same block is included multiple times for a Concern, an exception is no longer raised.

      Mark J. Titorenko, Vlad Bokov

    Active Model

    • Fix date value when casting a multiparameter date hash to not convert from Gregorian date to Julian date.

      Before:

      Day.new({"day(1i)"=>"1", "day(2i)"=>"1", "day(3i)"=>"1"})
      => #<Day id: nil, day: "0001-01-03", created_at: nil, updated_at: nil>

      After:

      Day.new({"day(1i)"=>"1", "day(2i)"=>"1", "day(3i)"=>"1"})
      => #<Day id: nil, day: "0001-01-01", created_at: nil, updated_at: nil>

      Fixes #28521.

      Sayan Chakraborty

    • Fix numericality equality validation of BigDecimal and Float by casting to BigDecimal on both ends of the validation.

      Gannon McGibbon

    Active Record

    • Fix different count calculation when using size with manual select with DISTINCT.

      Fixes #35214.

      Juani Villarejo

    • Fix prepared statements caching to be enabled even when query caching is enabled.

      Ryuta Kamizono

    • Don't allow where with invalid value matches to nil values.

      Fixes #33624.

      Ryuta Kamizono

    • Restore an ability that class level update without giving ids.

      Fixes #34743.

      Ryuta Kamizono

    • Fix join table column quoting with SQLite.

      Gannon McGibbon

    • Ensure that delete_all on collection proxy returns affected count.

      Ryuta Kamizono

    • Reset scope after delete on collection association to clear stale offsets of removed records.

      Gannon McGibbon

    Action View

    • Prevent non-primary mouse keys from triggering Rails UJS click handlers. Firefox fires click events even if the click was triggered by non-primary mouse keys such as right- or scroll-wheel-clicks. For example, right-clicking a link such as the one described below (with an underlying ajax request registered on click) should not cause that request to occur.

      <%= link_to 'Remote', remote_path, class: 'remote', remote: true, data: { type: :json } %>

      Fixes #34541

      Wolfgang Hobmaier

    Action Pack

    • Allow using combine the Cache Control public and no-cache headers.

      Before this change, even if public was specified for Cache Control header, it was excluded when no-cache was included. This fixed to keep public header as is.

      Fixes #34780.

      Yuji Yaginuma

    • Allow nil params for ActionController::TestCase.

      Ryo Nakamura

    Active Job

    • No changes.

    Action Mailer

    • No changes.

    Action Cable

    • No changes.

    Active Storage

    • No changes.

    Railties

    • Seed database with inline ActiveJob job adapter.

      Gannon McGibbon

    • Fix boolean interaction in scaffold system tests.

      Gannon McGibbon