Overriding a Relationships Propertry

I have a child relationship that is denormalized. I want to normalize it at the object level once it's retrieved:

class Parent   has_many :denormalized_children, :class_name=>'Child'

  def children     if @normalized_children.nil?        @normalized_children =        denormalized_children.group_by(&:number).each { |c|             @normalized_children << NormalizedChild.new(c)        }     end     @normalized_children   end end

This works fine, but I don't want to eager load them as :denormalized_children. I'd like to use :children. So I tried:

class Parent   has_many :children

  alias :denormalized_children :children   def children   #Same definition   end end

AR doesn't like this as it expects the children prop to return something that responds to loaded.

has_many :children, :group=>'number'

doesnt work either since it discards all but N unique numbers. So if I have 10 with number 1 and 5 with number 2 I'll only get back 2 children.

Is there any way to do this without having to change the name of the relationship?

I can't use after_load (or whatever it's called) in the Child class since the children need to be grouped by their relationship to their parent.

Any suggestions would be great.

Thanks