Skip to content

Instantly share code, notes, and snippets.

@utkukaynar
Created April 6, 2016 06:47
Show Gist options
  • Save utkukaynar/ea04561c6aa817f7ec4146fe12afa944 to your computer and use it in GitHub Desktop.
Save utkukaynar/ea04561c6aa817f7ec4146fe12afa944 to your computer and use it in GitHub Desktop.
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :memberable, polymorphic: true
end
class Project < ActiveRecord::Base
has_many :memberships, as: :memberable, dependent: :destroy
has_many :users, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, as: :memberable, dependent: :destroy
has_many :users, through: :memberships
end
class User < ActiveRecord::Base
has_many :memberships
has_many :groups, through: :memberships, source: :memberable, source_type: 'Group'
has_many :projects, through: :memberships, source: :memberable, source_type: 'Project'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment