class Participant < ApplicationRecord belongs_to :user belongs_to :game has_many :board_memberships, dependent: :destroy has_many :boards, through: :board_memberships has_many :board_posts, dependent: :destroy # バリデーション validates :user_id, uniqueness: { scope: :game_id, message: "既にこのゲームに参加しています" } validates :power, uniqueness: { scope: :game_id, message: "この国は既に選択されています" }, allow_nil: true validates :power, inclusion: { in: %w[AUSTRIA ENGLAND FRANCE GERMANY ITALY RUSSIA TURKEY], message: "無効な国です" }, allow_nil: true # 表示名:国名が設定済みなら国名、未設定ならユーザー名 def display_name power.present? ? power : user.username end end