Je travaille sur un projet de labyrinthe dans les rails, et ironiquement, je me suis perdu. Jusqu'à présent, je suis assez nouveau avec has_many_though les relations entre les modèles, et si un modèle a beaucoup de lui-même à travers quelque chose? Fondamentalement, chaque Room
a beaucoup de Rooms
. J'ai créé un modèle Tunnel
pour connecter ces pièces, afin qu'une pièce soit connectée à beaucoup d'autres par des tunnels. Mais il devient plus difficile quand il s'agit de construire ces relations.has_many de lui-même si
class Room < ApplicationRecord
has_many :tunnels
has_many :rooms, through: :tunnels
end
Et mon tunnel arrive à relier deux chambres
class Tunnel < ApplicationRecord
belongs_to :lemmin_room, :foreign_key => "room1_id"
belongs_to :lemmin_room, :foreign_key => "room2_id"
end
documentation Rails est assez clair quand il vient orteil modela a beaucoup Model B à ModelC, mais je ne pense pas qu'il parle jamais modela = ModelB.
Cette relation est-elle unidirectionnelle (une pièce a beaucoup d'autres pièces dans un tunnel, mais peut-être que si je suis dans l'une de ces pièces, je ne peux pas retourner à la pièce précédente par le même tunnel? une relation en miroir (une pièce A connectée à une autre pièce B peut être obtenue à partir de B via le même tunnel)? – guiniveretoo
Je peux retourner dans la pièce précédente par le même tunnel si nécessaire, oui. –