I’ve read through countless blogs and the docs and can’t seem to get
what I expect. I also tried irc on freenode, but they ignored me. I
must have a case of the mange or something.
I have a Person model (on a people table) and I want a hierarchy of
masters and servants. I’m doing this via a Vassalship model. When I
try to assign a master to a servant like so :
juniorperson.master=seniorperson
I get NoMethodError: undefined method `update_attributes’ for #<Class:
0x48be738>
And who knows what class that was. I can do
seniorperson.servants<<juniorperson no problem, but then I get a nil
for juniorperson.master ?!?!
My models look like this :
class Person < ActiveRecord::Base
has_many :vassalships,:class_name=>‘Vassalship’,:foreign_key=>:master_id
has_one :master,:through=>:vassalships,:source=>:master;
has_many :servants,:through=>:vassalships,:source=>:servant;
end
class Vassalship < ActiveRecord::Base
belongs_to :master,:class_name=>‘Person’,:foreign_key=>‘master_id’
belongs_to :servant,:class_name=>‘Person’,:foreign_key=>‘servant_id’
end
my tables are here, if you need to see them: http://pastie.org/352858,
and the full console track is here : http://pastie.org/352871
I’m doing something wrong, but I don’t know what. And anyone got a
better idea for the relationship? Vassalship seems a bit obscure.