2013-05-12 50 views
0

我试图找出这里最好的路径,以前的问题并没有说明问题,但这可能是由于我的解释,所以即将尝试并打破它分解成小块,希望能够聚集在问题的一些更多的了解,同时在bitesized块学习应用设置正确的模型关联Rails 3

其中一个用户在即将到来的比赛的比分predition一个足球预测应用的

范围。根据他们是否预测正确,他们将被分配一些积分。每个用户可以创建一个团队,然后成为联盟的一部分。

现有型号

class User 
    has_many predictions #prediction model has user_id as FK 
    has_many :teams #team model has user_id as FK 
    attr_accessible :prediction_id 
end  

class Team 
    belongs_to :user 
    attr_accessible :team_name, :user_id, :key 
end 

class Prediction 
    has_many fixtures #to allow predictions from multiple users<br> 
    attr_accessible :home_team, :away_team, :home_score, :away_score, :fixture_date, :fixture_id, :user_id 
end 

class Result 
    attr_accessible :home_team, :away_team, :fixture_date, :home_score, :away_score 
end 

我的问题是应该有一个单独的模型,如点存储从用户获得预测的点?因此,例如,如果用户正确预测分数,他们将得到3分。

Point模型我将不得不属性

result_id, prediction_id, allocated_points 

所以在这里我可以比较反对的结果预测和分配点..

理解,因为确实难倒就这一个

任何意见

回答

0

我不认为这有一个正确/错误的答案。很难说没有看到assosiations和每个模型的属性,但我会通过计算自己的积分开始:

class Predication 
    def correct? 
    fixture.result == result 
    end 
end 

class User 
    def points 
    predications.select(&:correct?).size * 3 
    end 
end 

class Team  
    def points 
    users.map(&:points).inject(&:+) 
    end 
end 
+0

嗨,感谢您的回答,我已经更新了我的关联和属性,如果您不介意再次看看 – Richlewis 2013-05-12 14:43:14

+0

我不确定什么是灯具,您似乎表示预测可以有很多用户吗?如果预测不属于一个用户? – Kris 2013-05-19 20:02:16

0

我认为点不应该是一个典范。它应该是用户表中的一列。 您应该从预测和结果计算点并更新关联用户的点。

但是就我的观点而言,我可能是完全错误的。

+0

感谢您的回答,我稍微更新了我的问题,用户可以创建一个团队,那么将点分配给团队而不是用户明智吗?或者预测模型如何,那么我会得到每个预测的分数而不是总数? – Richlewis 2013-05-13 07:36:04

+0

即使球队可以得分,他们仍然可以计算。 – Kris 2013-05-19 20:07:54