class Run < ApplicationRecord belongs_to :game belongs_to :user has_many :checkpoints, dependent: :destroy validates :title, presence: true after_create :checkout_to_creator def checked_in? checkpoints.where.not(kind: :comment).last.checkin? end def checked_out_user last_checkpoint = checkpoints.where.not(kind: :comment).last last_checkpoint.checkout? ? last_checkpoint.user : nil end def last_save_file checkpoints.except(save_file: nil).last&.save_file end private def checkout_to_creator checkpoints.create(user:, kind: :checkout) end end