Я считаю, что вы должны использовать две отдельные ассоциации и создать метод для возврата всех боев. Разве возможно, что когда-нибудь вам понадобится получить только 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