Can you extend an association, but only for a specific instance?

ActiveRecord allows an association to be extended, as in:

  module FindWeeklyExtension     def weekly(start)       where("created_at > :t1 and created_at < :t2",         :t1 => start,         :t2 => start + 7.days       )     end   end

  class Author     has_many :posts, :extend => FindWeeklyExtension   end

Over time, though, classes might start to include many modules:

  class Author     # several modules

    has_many :posts, :extend => [...]   end

You might notice that you only need an extension or module to exist in one particular context:

  module WeeklyDigest     def weekly_posts(start)       posts.weekly(start)     end   end

So it'd be cleaner not to have that in the class, and instead to do something like this:

  # Author   class Author     has_many :posts # we refactored :extend => FindWeeklyExtension ...   end

  module WeeklyDigest     def weekly_posts(start)       posts.extend FindWeeklyExtension # ... and moved it here       posts.weekly(start)     end   end

However, this doesn't work:

  NoMethodError: undefined method `where' for #<Array: 0x00000007d0e970>

So, is there a good way to extend an association, but only for a specific instance's association?