Я строю футбольную игру, и у меня возникают проблемы при создании классов Club и Match.Я хочу быть в состоянии сделать это:
match = Match.find(2)
match.home_club = <some club here>
match.away_club = <other club here>
А также это:
club = Club.find(2)
club.matches # Returns all matches where club plays home or away
Это то, что у меня сейчас:
class Club < ActiveRecord::Base
has_many :matches
end
class Match < ActiveRecord::Base
belongs_to :home_club, :class_name => "Club"
belongs_to :away_club, :class_name => "Club"
end
Но когда япопробуйте сделать Club.first.matches
, я получаю эту ошибку:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: matches.club_id: SELECT "matches".* FROM "matches" WHERE ("matches".club_id = 1)
Я играл с :inverse_of
, но у меня не получилось.Это вообще возможно, или мне нужно иметь два отдельных :has_many
отношения в Клубе?Вот так:
class Club < ActiveRecord::Base
has_many :home_matches, :class_name => "Match"
has_many :away_matches, :class_name => "Match"
end
Я тоже пробовал, но и это не сработало.