Birden çok kaynakla bir has_many through
ilişkisi oluşturmaya çalışıyorum. Örneğin, bir oyunun bir home_team
ve away_team
vardır ve bir turnuvada birden fazla oyun vardır.has_many
Oyun ilişkileri aracılığıyla has_many kullanarak tüm takımları turnuvaya katmanın en iyi yolu nedir?
class Tournament
has_many :teams, :through => :games, :source => :home_team, :uniq => true
end
ama gibi hareket yapmak için bir yol istiyorum:
Şu anda benim kod şöyle görünür
class Tournament
has_many :teams, :through => :games, :source => [:home_team, :away_team], :uniq => true
end
EDIT: birçok ilişki birçok benim sorunum değil. Aşağıdaki gibi yapısı varsayarak turnuvadaki tüm takımları elde etmenin iyi bir yolu var mı?
class Game
has_and_belongs_to_many :tournaments
belongs_to :home_team, :class_name => Team, :foreign_key => :home_team_id
belongs_to :away_team, :class_name => Team, :foreign_key => :away_team_id
end
class Tournament
has_and_belongs_to_many :games
end
Tournament.teams
yapmanın bir yolu var mı?
benzer bir sorunu vardı ve benim şema etrafında çalışmak değiştirilmesi sona erdi, ama baktım bir seçenek '.merge' http kullanarak bir yöntem oldu: // stackoverflow.com/questions/11486027/birleştirme-sonuç -dan-iki-bir-çok-dernekler-with-aynı-modeli ile Düzenleme: Daha fazla düşünün, ben bunu yapmak için raylar bahse girerim evde tek masa kalıtım olduğunu ve uzak oyunların, birleştirme tablosunu sağlayan bir ana soyut sınıfı olan 'Game' vardır. Bir dahaki sefere deneyeceğim :) – thebenedict