As you can see a person can create 0 or many groups, a group being
created by 1 person. A person belongs to 1 or many groups and a group
can contain many people. A can also contain many sub groups.
A simple person class to describe these relationship would be…
class Person < ActiveRecord::Base #relationships
has_many :usergroups
has_and_belongs_to_many :usergroups
end
obviously this is wrong I can’t name both usergroups ‘usergroups’. How
do I rename the relationship so I can refer to the two relationships.
Cheers,
Ewan
As you can see a person can create 0 or many groups, a group being
created by 1 person. A person belongs to 1 or many groups and a group
can contain many people. A can also contain many sub groups.
A simple person class to describe these relationship would be…
class Person < ActiveRecord::Base #relationships
has_many :usergroups
has_and_belongs_to_many :usergroups
end
obviously this is wrong I can’t name both usergroups ‘usergroups’. How
do I rename the relationship so I can refer to the two relationships.
You can name the associations whatever you want, then use the
:class_name option to override the implied class name.
class Person < ActiveRecord::Base
has_many :created_groups, :class_name => “UserGroup”
has_and_belongs_to_many :user_groups
end
class UserGroup < ActiveRecord::Base
belongs_to :creator, :class_name => “Person”
has_and_belongs_to_many :people
end
Give your user_groups table a creator_id field, and you should be good
to go.
A simple person class to describe these relationship would be…
class Person < ActiveRecord::Base #relationships
has_many :usergroups
has_and_belongs_to_many :usergroups
end
class Person
has_many :created_groups, :class_name => ‘Usergroup’, :foreign_key
=> ‘person_id’
has_and_belongs_to_many :usergroups
end
should do the trick
Thank you both for your reply and thanks for not just telling me to
RTFM. Having just started using Ruby and Rails it’s appreciated having
people how are willing to help with the simple questions.
Cheers,
Ewan
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.