Alain Ravet
2006-Mar-12 21:53 UTC
[Rails] NameError when trying to combine Recipe 14 (rich HABTM) & Rec. 10 (self-ref HABTM):
Hi all,
I''m trying to model self-referential relations between people, where
the
relation has attached data.
John ''works for'' Bob
Problem: '':through'' doesn''t work, and generates a
NameError.
=> the models :
Person (attr: name)
Relation (attr: source_id, target_id)
(more details below)
ex: John ''works for'' Bob
1> jsmith = Person.create(:name => ''John Smith'')
2> jdoe = Person.create(:name => ''John Doe'')
3> jsmith.to_relations.create(:name => "works_for", :target
=> jdoe)
4> assert_equal 1, jsmith.slaves.size
>>>>
NameError: activesupport/lib/active_support/dependencies.rb:106:in
`const_missing'': uninitialized constant Slafe
Models
------------------------------------
class Person < ActiveRecord::Base
has_many :to_relations , :foreign_key =>
''source_id'',
:class_name => ''Relation''
has_many :slaves , :through => :to_relations <<---- DOES
NOT
WORK !!!!!!!
end
# id :integer(11) not null
# source_id :integer(11)
# target_id :integer(11)
# name :string(255)
class Relation < ActiveRecord::Base
belongs_to :target , :foreign_key => ''target_id'',
:class_name
=> ''Person''
end
Any idea?
Alain
