Расчет очков для пользователей в Rails 3 - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть приложение 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...