¿Cuál es la mejor manera de lograr que a tenga dos asociaciones con activerecord?ActiveRecord tiene dos asociaciones
Tengo un equipo y modelos de juego. Cada equipo tendrá_muchos juegos @team.games
. Un juego tendrá dos equipos @game.hosting_team
y @game.opposing_team
.
Empecé con dos asociaciones belongs_to/has_one
pero luego @team.games
solo devolvería sus juegos de casa.
La otra opción que puedo pensar es usar una HABTM y usar un validador para asegurar que solo haya registros. Lo único que falta es hacer un seguimiento del equipo local. Parece que necesito un tiene muchas asociaciones pero no estoy muy seguro ...
Gracias por su ayuda.
Este es un ejemplo de cómo se ven las dos asociaciones de has_many. El problema aquí es que tendría que llamar team.games
y team.opponents
para obtener una lista completa de sus juegos
class Team < ActiveRecord::Base
has_many :games
has_many :opponents, :class_name => "Team"#, :foreign_key => ""
end
class Game < ActiveRecord::Base
belongs_to :team, :class_name => "Team" #, :foreign_key => "team_id"
belongs_to :opponent, :class_name => "Team" #, :foreign_key => "opponent_id"
end
me gustaría algo como esto, pero esto obviamente no es la forma en belongs_to obras.
class Team < ActiveRecord::Base
has_many :games
end
class Game < ActiveRecord::Base
belongs_to :hosting_team
belongs_to :opposing_team
end
Mi api deseada se vería así.
@team.games # return all games home or away
@game.hosting_team # Team
@game.opposing_team # Team
Puede usted calrify las relaciones del modelo y tal vez publicar su db/schema.rb? –
Gracias. Edité la pregunta. – jspooner