Ruby / Rails - Выполнение автоматических расчетов для атрибутов моделей - PullRequest
0 голосов
/ 07 июня 2011

Я работаю над созданием игры на рельсах, и я столкнулся с проблемой создания логики подсчета очков.

У меня есть модель Score, принадлежащая пользователю и имеющая total_points в качестве атрибута.

Таким образом, каждый раз, когда пользователь создает сообщение (или что-то еще), я бы хотел автоматически настроить атрибут users_score пользователей.

У меня такое ощущение, что я мог бы создать метод где-нибудь в модели оценки, но не смогЯ делал это раньше, поэтому я немного растерялся.

1 Ответ

5 голосов
/ 07 июня 2011

Это хороший вариант использования для обратного вызова ActiveRecord.

#post.rb

  belongs_to :score

  after_create :update_total_score

  protected

  def update_total_score
    score.update_attribute :total_score, score.total_score + new_score_value
  end

Примечание: если сообщение является обновляемым, тогда вы захотите использовать after_save, но я предполагаю, что after_create - это то, что вы ищете

Удачи!

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