30 lines
814 B
Ruby
30 lines
814 B
Ruby
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
|