Anteriormente estaba usando has_and_belongs_to_many, y he convertido a has_many: through. Así es como se ve una lista de juegos que pueden tener muchos usuarios jugando. Con esto, puedo hacer game.users y user.games ....:has_many: a través de las preguntas
class Game < ActiveRecord::Base
has_many :game_users, :dependent => :destroy
has_many :users, :through => :game_users, :uniq => true
end
class User < ActiveRecord::Base
has_many :game_users, :dependent => :destroy
has_many :games, :through => :game_users, :uniq => true
end
class GameUser < ActiveRecord::Base
belongs_to :game
belongs_to :user
end
Y mi migración de base de datos para la tabla de unión:
create_table :game_users, :id => false do |t|
t.column :game_id, :integer
t.column :user_id, :integer
t.column :player_index, :integer
end
No estoy muy seguro me sale todo esto, por favor, ayúdame a verificar mis datos:
¿Es dependiente =>: destruir correcto? Quiero que se elimine la entrada de la mesa de combinación 'game_users' si se destruye el juego o el usuario, pero no quiero que los usuarios se eliminen si se eliminan los juegos y viceversa .....?
Se supone que el campo uniq indica que los juegos solo contienen usuarios únicos y que los usuarios solo contienen juegos únicos. ¿Es eso correcto?
La migración de la base de datos como antes tiene: id => falso. ¿Sigue siendo lo correcto? Intenté en la consola destruir un juego y recibí quejas sobre la identificación que faltaba ... así que no estoy adivinando y tratando de entender por qué.
Encuentro rails active record associations very confusing. ¡Supongo que no se supone que lo sean!
Su uso de: dependent =>: destroy es correcto. –