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.