Open MartinChaud opened 3 months ago
Al momento de declarar las asociaciones tienes que dejar explícito cuáles son las fk. Si en el modelo Team solo pusiste has_many: matches, Rails por defecto buscará en la tabla matches un "team_id", tienes que sobreescribirlo para que busque en "teamA_id" y "teamB_id". Acá te dejan el ejemplo entre el modelo Meeting y User: https://medium.com/@lucashiago63/multiple-foreign-keys-for-the-same-model-in-rails-6-18ac4b7a7c6a
Intente hacerlo tal cual aparece en link, pero ahora tengo este error:
3.1.0 :010 > team1.matches /home/martin/.rvm/gems/ruby-3.1.0/gems/activemodel-7.0.8.1/lib/active_model/attribute_methods.rb:450:in 'method_missing': undefined method 'matches' for #<Team id: 1, name: "Cobresal", stadium: "El Cobre", capacity: 11240, city: "El Salvador", created_at: "2024-03-24 04:44:03.011210000 +0000", updated_at: "2024-03-24 04:44:03.011210000 +0000"> (NoMethodError)
Cambiaste los nombre en el has_many: de Team, cierto? si lo hiciste como en el ejemplo deberías tener algo como:
has_many :nombre1, class_name: 'Match', foreign_key: 'foreignKey_A'
has_many :nombre2, class_name: 'Match', foreign_key: 'foreignKey_B'
En ese caso ya no tienes "matches", y ese es el error que te está dando (Asumo que estás intentando usar team.matches). Tendrías que llamarlos usando team.nombre1 y team.nombre2
En efecto, logre llamarlos de la forma team.nombre1. ¿Pero luego como logro hacer un GET /teams/:team_id/matches? ¿Solo me aparecerían los matches de team.nombre1 o team.nombre2 o no?
Juntalos
Hola! Yo tengo el mismo error, pero siguiendo los pasos del link, luego de hacer el rails db:migrate, el archivo schema.rb no se me actualiza ni se modifica nada... A que podría deberse?
Llevo por lo menos desde el miércoles intentando lograr que la asociación entre teams y matches funcione. El último error que me ha surgido es cuando defino un team1 y team2 y luego defino un partido match1 entre los 2. Cuando intento ver los partidos del team1 usando la función team1.matches me tira este error. En la ayudantía del viernes el ayudante me dijo que mis asociaciones parecían estar bien, así que no se que puede ser.