Imagine the following situation:
model Person, with the default name, address, location data.
Person has either one or no superior which in turn is also a Person
I would expect something like
has_one :superior, :class_name => "Person"
but where would I place the belongs_to line that goes with it and what
arguments do I need to supply? And what kind of foreign keys do I need
to specify in my migration?
I would like for the following to work:
bossman = Person.new :name => "Mr. Bossman"
person1 = Person.new :name => "John"
person2 = Person.new :name => "Jane"
person1.superior = bossman
person2.superior = bossman
person1.superior.name # => "Mr. Bossman"
I wonder what kind of columns I need for this in my Persons table
manually specified and which columns are virtual. I experimented a bit
already and got something quite similar, but for some reason I was able
to modify the person1.superior_id independantly of the person1.superior
object. I'd rather have nothing to do with the _id and shield it from
being used directly.