class WorkflowStepAssignee < ActiveRecord::Base belongs_to :workflow_step validates :workflow_step_id, presence: true validates :assignee_type, presence: true, inclusion: { in: %w[user role_group department] } validates :assignee_id, presence: true validates :assignee_id, uniqueness: { scope: [:workflow_step_id, :assignee_type] } def assignee case assignee_type when 'user' User.find_by(id: assignee_id) when 'role_group' RoleGroup.find_by(id: assignee_id) when 'department' Department.find_by(id: assignee_id) end end def assignee_name obj = assignee return '(삭제됨)' unless obj case assignee_type when 'user' obj.name when 'role_group' "#{obj.name} (역할그룹)" when 'department' "#{obj.name} (부서)" end end def type_label case assignee_type when 'user' then '사용자' when 'role_group' then '역할 그룹' when 'department' then '부서' end end end