プレイヤーである人のチームについて話している場合は、すべてのプレイヤーとゲームプレイヤー。プレイヤーは時間の経過と共に行き来することができますが、どのプレイヤーがスタートプレイヤーであったか、どのプレイヤーがそのゲームにあったかなど、特定のものを定義することができます。
したがって、このような何か:
class Player < ActiveRecord::Base
has_many :game_players
has_many :games, through: :game_players
end
class Game < ActiveRecord::Base
has_many :game_players
has_many :players, through: :game_players
end
class GamePlayer < ActiveRecord::Base
belongs_to :game
belongs_to :player
def starting_player
return GamePlayer.joins(:game).merge(GamePlayer.starting).first.player
end
end
のでGamePlayerだけ
game_id (an integer)
player_id (an integer)
starting (a boolean)
次にあなたが
@game.starting_player
を言うことができるだろうと、それは戻ってくる、いくつかのフィールドを持っているでしょう開始したシングルプレイヤー
チームスポーツの場合は、各プレーヤーにスタートプレーヤーがあるので、start_playerメソッドで「最初の」コールを削除する必要があります。これにより、2人のプレーヤーの配列が得られます。プレーヤーに関連するチームモデルもある場合は、両方のチームを獲得できます
@games.starting_player.each do |player|
# Whatever kind of formulations or front end view code you need
player.team.name
end
出典
2016-05-06 17:31:02
trh