J'ai trois classes qui doivent être liées, et je ne suis pas sûr de savoir comment le faire.Association de deux ressources, déjà associées
La classe User, est bien sûr pour un utilisateur, Game représente un jeu, GameTurn représente un tour dans la partie. Le jeu appartient à un utilisateur, l'utilisateur qui a initié le jeu, et GameTurn appartient à un utilisateur, l'utilisateur qui a joué ce tour. Ce que je veux faire est d'associer l'utilisateur et le jeu à GameTurn, ainsi je peux rapidement obtenir une liste de joueurs dans un jeu, et une liste de jeux auxquels un joueur a joué. Je ne suis pas sûr de savoir comment faire Ceci, et ne veut pas gâcher quoi que ce soit puisque le jeu appartient déjà à un utilisateur. (les propriétés non liées ont été supprimées si possible, pour rendre les définitions plus lisibles).
Voici les définitions de classes pertinentes
class User
include DataMapper::Resource
property :id, Serial
property :name, String
property :created_at, DateTime
property :password, BCryptHash
has n, :gameTurns
end
class Game
include DataMapper::Resource
property :id, Serial
property :created_at, DateTime
property :finished, Boolean, :default=>false
property :finished_at, DateTime
property :length, Boolean #Number of turns
has n, :gameTurns
end
class GameTurn
include DataMapper::Resource
property :id, Serial
property :isText, Boolean
property :text, String
property :image, Text
belongs_to :game
belongs_to :user
end
Je suis assez inexpérimenté avec ORM en général, si l'une de ces associations peuvent être mieux fait d'une autre manière, s'il vous plaît laissez-moi savoir.
Merci
Quelqu'un peut-il confirmer si ce que je veux? J'imagine qu'il pourrait y avoir des problèmes puisque le jeu appartient déjà à un utilisateur (d'une manière différente de ce que je veux que cette relation soit) –
oh attends! Je n'ai pas fait ça. Désolé, je pensais que chaque jeu appartenait à un utilisateur, celui qui a commencé, mais je me suis juste rendu compte que je ne l'ai pas fait parce que je me fous de qui a commencé le jeu (et si j'ai besoin de savoir, c'est la première personne jouer), donc il n'y a pas d'ambiguïté, et cela fonctionne. Merci! –
Je suis heureux de pouvoir aider:] –