Skip to main content

Creating usergroups

Rails • Asked by Trenton Tyler

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?

Thanks - https://stackoverflow.com/questions/47985654/rails-auto-complete-user-object


Hey Trenton,

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. 👍


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 27,623+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.