Может ли камень заслуг пересчитать репутацию и переоценить значки и звания?
Я хотел бы добавить систему очков, рангов и значков в моем приложении rails.
Драгоценный камень достоинств выглядит круто, но я хочу убедиться, как он работает, прежде чем его использовать.
Как вы определяете значки
# app/models/merit/badge_rules.rb
grant_on 'comments#vote', :badge => 'relevant-commenter', :to => :user do |comment|
comment.votes.count == 5
end
и очки
# app/models/merit/point_rules.rb
score 10, :to => :post_creator, :on => 'comments#create' do |comment|
comment.title.present?
end
предположить, что действие выполняется как зацепка, сразу после действия (comments#vote
или же comments#create
в этих случаях. Я еще не смотрел, как работает подсчет значков и очков, поэтому я не уверен.
Поскольку мое приложение будет развиваться со временем, я хотел бы иметь возможность изменить правила для точек и значков и пересмотреть их. Например: скажем, сначала я решил дать 10 баллов за активацию аккаунта. Я хотел бы иметь возможность изменить его на 20, а затем все активированные профили переоцениваются и получают увеличение +10 баллов. То же самое для значков.
Этот камень поддерживает это?
1 ответ
Можно пересчитать репутацию в приложении с достоинством. Заслуга хранит историю того, какие действия были инициированы, какой пункт / предоставление значка в Merit::Action
модель, которая сопоставлена с merit_actions
Таблица.
Следующий сценарий должен работать (сначала сделайте резервную копию, так как я еще не делал это в производстве):
# 1. Reset all badges/points granting
Merit::BadgesSash.delete_all
Merit::Score::Point.delete_all
# 1.1 Optionally reset activity log (badges/points granted/removed until now)
Merit::ActivityLog.delete_all
# 2. Mark all `merit_actions` as unprocessed
Merit::Action.all.map{|a| a.update_attribute :processed, false }
# 3. Recompute reputation rules
Merit::Action.check_unprocessed
Merit::RankRules.new.check_rank_rules
Замечания о внутренних заслугах (вики-страница "Общие заслуги").