I am creating an application where users can belong to groups and those groups can belong to a map.
In order to link a user and group together I created a model called usergroup. I listed the models below so you can see the associations.
class Usergroup < ApplicationRecord belongs_to :user, optional: true belongs_to :group, optional: true end
class Group < ApplicationRecord has_many :usergroups has_many :users, through: :usergroups end
class User < ApplicationRecord has_many :usergroups has_many :groups, through: :usergroups end
I will be needing an association between my Group and Map so that, when a map is added to a group, all users in the usergroup with that map_id will be able to access that map. My question is - is there a more practical way to achieve this? At the moment I have a SO question regarding the same topic and have not gotten a response even with a bounty set. I was hoping to get some input on here. Any ideas?
What you've got is definitely on the right track. The reason being that to create these many to many relationships in SQL is that you have to have the join table in order to have them.
It sounds like you might actually want to put the
belongs_to :map on the Group itself so that you can easily add all the group's users to a map.
Also left you a comment on your SO post. 👍