We cannot cache keys because arrays are mutable. We rather want to cache
the arrays. This behaviour is tailor-made for the usage pattern strongs
params is designed for.
In a forthcoming commit I am going to add a test that covers why we need
to cache by value.
Every strong params instance has a live span of a request, the cache goes
away with the object. Since strong params have such a concrete intention,
it would be interesting to see if there are actually any real-world use
cases that are an actual leak, one that practically may matter.
I am not convinced that the theoretical leak has any practical consequences,
but if it can be shown there are, then I believe we should either get rid of
the cache (which is an optimization), or else wipe it in the mutating API.
This reverts commit e63be2769c039e4e9ada523a8497ce3206cc8a9b.
* 'master' of github.com:rails/rails:
For our build, stick with mail 2.5.x for now
Correct result, previously showing wrong result
Collapse PG default extractoin of most types to single regex
Change wording of explanation about precision & scale of decimal numbers [ci skip]
Cleaned up duplicated CHANGELOG entry [ci skip]
reuse available belongs_to? method
Convert StrongParameters cache to a hash. This fixes an unbounded memory leak demonstrated on @tenderlove's latest blog post:
Partially revert deprecation of *_filter
Pluralize params
Add default_i18n_subject to the guides
Fix regression on eager loading association based on SQL query rather than existing column.
Relax mail gem constraint from ~> 2.5.4 to ~> 2.5, >= 2.5.4
Keep column defaults in type cast form
Return a null column when no column exists for an attribute
Refactor XML serializer to not depend on `serialized_attributes`
Test the serialized types of virtual columns in XML
implement ActiveRecord::Base#pretty_print + changelog
Remove duplicated HashWithIndifferentAccess#with_indifferent_access.
We are going to deprecate only on Rails 5 to make easier plugin
maintainers support different Rails versions. Right now we are only
discouraging their usage.
This reverts commit 6c5f43bab8206747a8591435b2aa0ff7051ad3de.
Conflicts:
actionpack/CHANGELOG.md