我有一个有很多战斗的用户模型。战斗属于用户。
战斗表中有两个外键引用回用户 PK——challenge_id 和 challengee_id。
诀窍是如何在 User 模型上编写 has_many 关联,以便它返回 user_id = challenger_id 或 challengee_id 的战斗?
我有一个有很多战斗的用户模型。战斗属于用户。
战斗表中有两个外键引用回用户 PK——challenge_id 和 challengee_id。
诀窍是如何在 User 模型上编写 has_many 关联,以便它返回 user_id = challenger_id 或 challengee_id 的战斗?
我相信您应该使用两个独立的关联并创建一个返回所有战斗的方法。有没有可能有一天你只需要得到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