我试图找到模拟与团队相关的游戏的最佳方法。使用两个关系到同一个模型
的最终目标是能够调用的东西,如:
@game.winner
@game.loser
@team.games
前两种关系的工作,但游戏之一是没有的。使用has_many(见下文),我得到ERROR: column games.team_id does not exist
,我通常会使用任何与:foreign_key => winner_id
等效的东西来解决问题,但是如何才能将它同时结帐到winner_id
和loser_id
?
是队中的模型来创建一个方法,像这样唯一的选择:
def games
won = Game.where(:winner => id)
lost = Game.where(:loser => id)
won + lost
end
到目前为止,我在做什么是:
class Game < ActiveRecord::Base
has_one :winner, class_name: "Team"
has_one :loser, class_name: "Team"
end
class Team
has_many :games
# or something that actually works
end
可能的重复:http://stackoverflow.com/questions/11873011/rails-admin-column-does-not-exist – Waclock
不,我的是,但我想两个外键 –
但实际上可能是重复的http://stackoverflow.com/questions/307581/rails-model-has-many-with-multiple-foreign-keys –