我有一个有许多打斗的用户模型。战斗属于用户。
战斗表中有两个外键引用回用户PK - challenger_id和challengee_id。
诀窍是如何在User模型上编写has_many关联,以便它返回user_id = challenger_id或challengee_id的战斗?
答案 0 :(得分:1)
我相信你应该使用两个独立的关联并创建一个方法来返回所有战斗。有一天你不可能只获得fights
@user
challenger
的所有内容吗?
我会像下面这样做:
class User < ActiveRecord::Base
has_many :fights_as_challenger, :foreign_key => :challenger_id,
:class_name => "Fight"
has_many :fights_as_challengee, :foreign_key => :challengee_id,
:class_name => "Fight"
def all_fights
self.fights_as_challenger + self.fights_as_challengee
end
end