我有一个Rails 3.0.7(Ruby 1.9.2)应用程序,用户可以根据他们的活动累积积分。我正在尝试构建一个报告,显示每个用户有多少积分,但它不起作用。当我在一些测试数据上运行它时,我有大约350个用户,其中100个有积分,但只有大约10个点得分,其余的回归0点。
活动模型/表存储每个活动的点数。
这是报告中的代码:
<% @users.each do |user| %>
<%= user.username %>
<%= Activity.calculate_user_points(current_community, user.id) %>
<% end %>
在应用程序控制器中,current_community定义为:
def current_community
logger.debug "ApplicationController::current_community"
return @current_community if defined?(@current_community)
@current_community = current_community_session && current_community_session.community
end
在活动模型中我有这个方法:
def self.calculate_user_points(community, user_id)
Activity.sum(:amount , :conditions => [ "community_id IN (?) and user_id =?", community.campaigns, user_id ])
end
对我来说奇怪的是为什么一些人会正确计算,但其余的计算为0?