class UserTeamProjectRelationship < ActiveRecord::Base attr_accessible :greatest_access, :project_id, :user_team_id belongs_to :user_team belongs_to :project validates :project, presence: true validates :user_team, presence: true validate :check_greatest_access scope :with_project, ->(project){ where(project_id: project.id) } def team_name user_team.name end private def check_greatest_access errors.add(:base, :incorrect_access_code) unless correct_access? end def correct_access? return false if greatest_access.blank? return true if UsersProject.access_roles.has_value?(greatest_access) false end end