Какой самый эффективный способ постоянно обновлять и отслеживать оценку объекта? - PullRequest
0 голосов
/ 20 марта 2012

Класс объектов Item имеет оценку, связанную с его атрибутами.Мне нужно применять метод calc_ranking к классу Item непрерывно (в идеале, когда изменяется любой из атрибутов объекта) и эффективно рассчитывать этот счет:

Item.all.each do |i|
    Item.update_counters i.id, :score_count =>  i.calculate_ranking
end 

Я пытался использовать attr_accessor: score (после добавлениястолбец оценки в таблицу элементов) и after_initialize: Calculate_ranking, однако это не сработало.Можно ли было бы применить собственный кеш счетчика для достижения этой цели, даже если «Оценка» не является отдельной моделью?То есть без учета: Оценка по классу;counter_cache => true;конец.

1 Ответ

0 голосов
/ 20 марта 2012

Я не уверен, что понимаю вашу проблему достаточно хорошо. Однако взгляните на обратные вызовы здесь: http://guides.rubyonrails.org/active_record_validations_callbacks.html

и наблюдатели здесь: http://guides.rubyonrails.org/active_record_validations_callbacks.html#observers

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