2010-11-20 37 views
2

我正在构建一个奇幻赛车预测应用程序。目标是预测比赛中的前十名选手。正确的预测获得3分。 1个位置的预测奖励2点。预测2个位置关闭被授予1分。此代码是否在模型中?

我需要将用户的预测与实际结果进行比较,从结果位置整数中减去预测位置整数,然后取绝对值。然后我可以相应地奖励3,2,1或0分。不过,我不知道把这段代码放在我的Rails应用程序中。

我的直觉是在模型中,但我不知道从哪里开始(我是初学者)。我需要一些建议来引导我走向正确的方向。

谢谢!

回答

1

是的,它的作用。该模块是您想要封装大部分业务逻辑的地方。 Skinny Controller, Fat Model后更详细地描述了这一点,但你的直觉是正确的。该模型是这种复杂逻辑的最佳地点。

您可以在模型中封装想要在方法中执行的操作,并且如果您在控制器或视图中使用它,则只需调用calculate_awarded_points或您决定命名的任何内容即可。在您的控制器中读取10多行代码并不直接与连接视图和模型的目的相关。

0

我会把这个逻辑分成两个地方:模型和相关的观察者。

在预测模型中存储实际点字段以及对相关结果的引用,并连接观察者到结果以计算创建结果时的预测分数。

的更多信息:ActiveRecord Observers