1
我想在Rails中找到匹配類型的模型。比賽需要牢記以下的軌跡:在Rails中建模遊戲匹配的好方法?
- 兩位選手
- 贏家
沒有得分或類似的東西。我可以看到這是作爲3個單獨的has_one
與玩家的關係,但這對我來說似乎很難受。有沒有更好的方法來解決這個問題?
我想在Rails中找到匹配類型的模型。比賽需要牢記以下的軌跡:在Rails中建模遊戲匹配的好方法?
沒有得分或類似的東西。我可以看到這是作爲3個單獨的has_one
與玩家的關係,但這對我來說似乎很難受。有沒有更好的方法來解決這個問題?
如何只有兩個字段:
class GameMatch < ActiveRecord::Base
belongs_to :winner, :class_name => 'Player'
belongs_to :loser, :class_name => 'Player'
end
如果您需要輸入GameMatch到系統完成本場比賽之前,你必須有三個字段,但你可以或者細節像這樣:
class GameMatch < ActiveRecord::Base
belongs_to :home_player, :class_name => 'Player'
belongs_to :away_player, :class_name => 'Player'
def winner
self[:home_won] ? home_player : away_player
end
def winner=(player)
self[:home_won] = player == home_player
end
end
當然,你必須在那裏有一些處理,以確保獲獎者所扮演的遊戲,不是一個旁觀者是決定索賠的勝利。
非常好描述。我想補充一點,如果你需要存儲一系列的值,比如圓的結果,命中和東西,你可以使用序列化在你的模型中存儲哈希值。 – Spyros 2011-04-01 19:53:48
良好的調用,並優化表,你可以將':winner'轉換爲布爾值。哎呀,不妨改變這個答案。 – Kelly 2011-04-01 20:14:18