2010-11-20 26 views
2

Bir fantezi yarış tahmin uygulaması yapıyorum. Amaç, bir yarışta ilk on bitiriciyi tahmin etmektir. Doğru tahminlere 3 puan verilir. 1 pozisyon kapalı olan tahminler 2 puanla ödüllendirilir. 2 pozisyon kapalı olan tahminler 1 puan verilir.Bu kod modele giriyor mu?

Kullanıcının Tahminini gerçek Sonuçlarla karşılaştırmalı, Sonuç Konum tamsayı değerini Sonuç Konum tamsayıdan çıkarmalı ve mutlak değeri almam gerekir. Daha sonra buna göre 3,2,1 veya 0 puan verebilirim. Ancak bu kodu raylar uygulamasına nereye koyacağımı bilmiyorum.

Benim içgüdüsü içgüdüm modelde, ama nereden başlayacağımı bilmiyorum (yeni başlayan kişiyim). Beni doğru yönde yönlendirmek için tavsiyeye ihtiyacım var.

Teşekkürler!

cevap

1

Evet, öyle. Modle, iş mantığınızın çoğunu kapsüle etmek istediğiniz yerdir. Skinny Controller, Fat Model yazısı bunu daha ayrıntılı olarak açıklıyor, ancak bağırsak içgüdüsü doğru. Model, bu tür karmaşık mantık için en iyi yerdir.

Size modelinde bir yöntemde ne yapmak istediğinizi sarabiliriz ve size denetleyicisi kullanmak veya görmek eğer siz söyleyin karar ne olursa olsun calculate_awarded_points veya sadece bir çağrıdır. Denetleyicinizdeki görünüm ve modelleri bağlama amacı ile doğrudan ilgili olmayan 10 kod satırından daha kolay okunabilir.

0

Bu mantığı iki yere bölerim: Model ve ilgili Gözlemciler.

Gerçek nokta alanlarını ve Prediction modelindeki ilgili Sonucu bir referansı depolayın ve bir Sonuç oluşturulduğunda Tahmin puanlarını hesaplayan bir Sonuç için bir Gözlemciyi bağlayın.

fazla bilgi: ActiveRecord Observers