관련해야 할 세 가지 클래스가 있는데, 어떻게해야할지 모르겠습니다.이미 관련되어있는 두 개의 리소스를 연결합니다.
사용자 클래스는 물론 사용자를위한 것이며 Game은 게임을 나타내며 GameTurn은 게임에서 차례를 나타냅니다. 게임은 사용자, 게임을 시작한 사용자, GameTurn은 해당 차례를 한 사용자 인 사용자에게 속합니다.
내가 원하는 것은 GameTurn을 통해 사용자와 게임을 연결하는 것이므로 게임의 플레이어 목록과 플레이어가 참여한 게임 목록을 신속하게 얻을 수 있습니다. 어떻게해야할지 모르겠습니다. 게임이 이미 사용자에게 속해 있기 때문에 아무 것도 망치고 싶지 않습니다. (정의되지 않은 속성은 가능한 경우 제거되어 정의를보다 쉽게 읽을 수있게되었습니다.) 여기
는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
내가 일반적으로 ORMs 꽤 경험이있어 관련 클래스 정의, 그래서 이러한 협회의 더 나은 다른 방법을 할 수 있으면 알려 주시기 바랍니다.
감사
같은 사람이 확인할 수있다 생각? 나는 게임이 이미 사용자와 관련되어 있기 때문에 문제가있을 것이라고 상상한다. (나는이 관계를 원한다. 다른 방식으로) –
기다려라! 나는 그렇게하지 않았다. 죄송합니다. 각 게임은 사용자가 시작한 사람이라는 것을 알았지 만 누가 게임을 시작했는지 상관하지 않기 때문에 내가하지 않았다는 것을 깨달았습니다. (그리고 알아야 할 경우 첫 번째 사람입니다.), 그래서 애매 모호하지 않으며, 이것은 효과가 있습니다. 감사! –
도와 드릴 수있어서 기쁩니다.] –