class Report < ApplicationRecord belongs_to :user belongs_to :target_user, class_name: "User", optional: true validates :type, presence: true validates :target_id, presence: true validates :user_id, presence: true def target type.sub('Reports::', '').constantize.where(id: target_id).first end def append_reason(new_reason) if reason.nil? update(reason: new_reason) else update(reason: [reason || "", new_reason].join("\n")) end end end