2010-11-20 65 views
2

我正在構建一個奇幻賽車預測應用程序。目標是預測比賽中的前十名選手。正確的預測獲得3分。 1個位置的預測獎勵2點。預測2個位置關閉被授予1分。此代碼是否在模型中?

我需要將用戶的預測與實際結果進行比較,從結果位置整數中減去預測位置整數,然後取絕對值。然後我可以相應地獎勵3,2,1或0分。不過,我不知道把這段代碼放在我的Rails應用程序中。

我的直覺是在模型中,但我不知道從哪裏開始(我是初學者)。我需要一些建議來引導我走向正確的方向。

謝謝!

回答

1

是的,它的作用。該模塊是您想要封裝大部分業務邏輯的地方。 Skinny Controller, Fat Model後更詳細地描述了這一點,但你的直覺是正確的。該模型是這種複雜邏輯的最佳地點。

您可以在模型中封裝想要在方法中執行的操作,並且如果您在控制器或視圖中使用它,則只需調用calculate_awarded_points或您決定命名的任何內容即可。在您的控制器中讀取10多行代碼並不直接與連接視圖和模型的目的相關。

0

我會把這個邏輯分成兩個地方:模型和相關的觀察者。

在預測模型中存儲實際點字段以及對相關結果的引用,並連接觀察者到結果以計算創建結果時的預測分數。

的更多信息:ActiveRecord Observers