# == Schema Information # # Table name: members # # id :integer not null, primary key # user_id :integer default("0"), not null # project_id :integer default("0") # created_on :datetime # mail_notification :boolean default("0"), not null # course_id :integer default("-1") # course_group_id :integer default("0") # is_collect :integer default("1") # graduation_group_id :integer default("0") # is_apply_signature :boolean default("0") # team_user_id :integer # # Indexes # # index_members_on_course_id (course_id) # index_members_on_project_id (project_id) # index_members_on_team_user_id (team_user_id) # index_members_on_user_id (user_id) # index_members_on_user_id_and_project_id (user_id,project_id,course_id) UNIQUE # class Member < ApplicationRecord belongs_to :user # belongs_to :course, optional: true belongs_to :project, optional: true belongs_to :team_user, optional: true has_many :member_roles, dependent: :destroy has_many :roles, through: :member_roles validates :user_id, :project_id, presence: true end