why associations get error when defined in abstract_class model

I have many models and want to share common functions among them in abstract_class models as many as possible.

But why the associations specified in abstract_class do not work?

For example:

class Property < AR::Base   self.abstract_class = true

  belongs_to :dictionary, :foreign_key=>'dictionary_id', :class_name =>"#{self.class.parent.name}::Dictionary"

I think maybe I figured out why I'm wrong.

The 'belongs_to' declaration in abstract class is actually evaluated before the abstract class is inherited.

And the sub class which is inherited from abstract class only got all the instance methods which were generated by the 'belongs_to' declaration in its parent.

So, in my example,

I can never get 'Jp' or 'Cn' strings in the abstract class Property's 'belongs_to' declaration because the instance object 'temp' never saw that declaration.

Please fix me if I am wrong.