Имам модел за мач (кибрит, т.е. мач за тенис или пинг-понг). Включва 2 играча (player1, player2) и бих искал моите user.matches да връщат екземпляри на потребителя в player1 и player2.
Системата, която имам, е както по-долу, но изглежда тромава и неинтуитивна:
ПОТРЕБИТЕЛСКИ МОДЕЛ:
has_many :matches, :foreign_key => "player1_id"
has_many :reverse_matches, :foreign_key => "player2_id", :class_name => "Match"
СЪОТВЕТСТВИЕ НА МОДЕЛ:
belongs_to :player1, :foreign_key => "player1_id", :class_name => "User"
belongs_to :player2, :foreign_key => "player2_id", :class_name => "User"
Отворен съм за предложения и за това как да структурирам модела (т.е. ако колоните player1/player2 не са правилният начин).
Само не забравяйте, че всеки мач трябва да принадлежи на 2 и само 2 играчи.