Есть две ассоциации.Я использовал home_team и away_team вместо team1 и team2:
class Match
belongs_to :home_team, :class => 'Team', :foreign_key => 'home_team_id'
belongs_to :away_team, :class => 'Team', :foreign_key => 'away_team_id'
class Team
has_many :home_matches, :class_name => 'Match', :foreign_key => 'home_team_id'
has_many :away_matches, :class_name => 'Match', :foreign_key => 'away_team_id'
Чтобы удалить все совпадения для команды, вам нужно удалить оба связанных совпадения.В team.rb:
def delete_all_matches
home_matches.delete_all
away_matches.delete_all
end