2013-06-26 2 views
0

내 레일 애플 리케이션에서 나는 다음과 같은 모델을 가지고 : 사용자, 게임 및 선수. 사용자는 게임이 많고 게임에는 플레이어가 많습니다. 지금까지는 매우 간단하지만 문제는 한 게임에서 최대 플레이어 수는 8 명이고 플레이어 수가 최대에 도달했지만 게임에 합류 할 가능성이 있다는 것입니다.루비 레일에 모델을 구조화 애플 ​​리케이션

그래서 질문이 있습니다 : 추가 예비 모델이 있어야합니까? 그리고 모든 모델들이 어떻게 서로 연관되어야 하는가? 현재 플레이어 모델에 예약 속성을 추가하여 해결했으며 최대 금액에 도달하면 예약 속성이 0 대신 1로 바뀝니다.이 솔루션은 조금 번거롭고 많은 코드가 필요합니다. 나는 누군가가 비슷한 것을하고 더 나은 해결책을 가지고 있는지 궁금해하고 있었다.

답변

0

게임 모델에 메서드를 추가 할 수 있습니다.

has_many :players 

def is_reserved 
self.players.count >= 8 ? true : false 
end 

그런 다음 플레이어를 게임에 추가하는 조건을 지정하십시오. 나는 당신이 @game 객체를 가지고 있다고 가정하고있다.

unless @game.is_reserved 
    // add players 
else 
// show the warning messaage or do nothing 
end 

희망은 도움이 될 것입니다.