2010-11-20 4 views
2

환상적인 경주 예측 앱을 만들고 있습니다. 목표는 경주에서 상위 10 명의 피니셔를 예측하는 것입니다. 올바른 예측은 3 점을받습니다. 1 포지션 오프 예측은 2 포인트를받습니다. 2 포지션 인 예측은 1 포인트를받습니다.이 코드가 모델에 포함되어 있습니까?

사용자 예상을 실제 결과와 비교하고 예상 위치 정수를 결과 위치 정수에서 빼고 절대 값을 가져와야합니다. 그러면 3,2,1 또는 0 점을 그에 따라 수여 할 수 있습니다. 그러나 난 내 레일 애플 리케이션 에이 코드를 넣어 모르겠다.

내 직감은 모델에 있지만 어디서부터 시작해야할지 모르겠다 (초보자). 올바른 방향으로 나를 조종하기 위해 조언이 필요합니다.

감사합니다.

답변

1

예, 그렇습니다. modle은 대부분의 비즈니스 로직을 캡슐화하고자하는 곳입니다. Skinny Controller, Fat Model 게시물에 자세히 설명되어 있지만 직감이 옳습니다. 이 모델은 그런 종류의 복잡한 논리를위한 최고의 장소입니다.

모델의 메서드에서 수행 할 작업을 캡슐화 할 수 있으며 컨트롤러 또는보기에서 사용하는 경우 calculate_awarded_points 또는 이름을 지정하기 만하면됩니다. 뷰와 모델을 연결하는 목적과 직접 관련이없는 코드를 컨트롤러에서 10 줄 이상 추가하는 편이 훨씬 쉽습니다.

0

필자는이 논리를 모델과 관련 옵서버라는 두 곳으로 나눌 것입니다.

실제 포인트 필드와 관련 결과에 대한 참조를 예측 모델에 저장하고 결과가 생성 될 때 예측 점수를 계산하는 옵저버를 결과에 연결합니다.

더 많은 정보 : ActiveRecord Observers

관련 문제