1

我有一个有很多战斗的用户模型。战斗属于用户。

战斗表中有两个外键引用回用户 PK——challenge_id 和 challengee_id。

诀窍是如何在 User 模型上编写 has_many 关联,以便它返回 user_id = challenger_id 或 challengee_id 的战斗?

4

1 回答 1

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
于 2010-06-19T14:58:45.390 回答