From 4a4ff504590adfb516502ea332ad0608652b3519 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Mon, 11 Feb 2013 21:24:11 +0100 Subject: don't cache invalid subsets when preloading hmt associations. closes #8423. --- activerecord/CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'activerecord/CHANGELOG.md') diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 4fa37cc5c2..4489ca1aff 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,27 @@ ## Rails 4.0.0 (unreleased) ## +* Preloading `has_many :through` associations with conditions won't + cache the `:through` association. This will prevent invalid + subsets to be cached. + Fixes #8423. + + Example: + + class User + has_many :posts + has_many :recent_comments, -> { where('created_at > ?', 1.week.ago) }, :through => :posts + end + + a_user = User.includes(:recent_comments).first + + # this is preloaded + a_user.recent_comments + + # fetching the recent_comments through the posts association won't preload it. + a_user.posts + + *Yves Senn* + * Don't run after_commit callback when creating through an association if saving the record fails. -- cgit v1.2.3