# The game class class Game < ActiveRecord::Base has_many :players, dependent: :destroy has_many :users, through: :players accepts_nested_attributes_for :players validates :title, presence: true def start # Save the game to the database return false unless startable? save # Start the game TODO end def validate_startable @player_count = players.size errors[:players] = 'Must be at least 2 players.' if @player_count < 2 errors[:players] = 'Must be less than 5 players.' if @player_count > 4 end def startable? @player_count = players.size bool = @player_count.between?(2, 4) #bool = status != 'Game Started' end def add_player_from_user(user) return false unless can_accomodate(user) self.players.create(user: user) end def can_accomodate(user) !(already_has?(user) || full?) end def already_has?(user) users.include?(user) end def full? players.size >= 4 end end