3

我在我的 Rails 项目中使用了优点宝石,而优点观察者根本没有工作。我的 app/observers/ 文件夹中有reputation_change_observer.rb

#reputation_change_observer.rb
class ReputationChangeObserver
observe :user
def update(changed_data)
   description = changed_data[:description]

   # If user is your meritable model, you can query for it doing:
   user = User.where(sash_id: changed_data[:sash_id]).first

   user.update_life_time_point
   user.give_badges

   # When did it happened:
   datetime = changed_data[:granted_at]
  end
end

当声誉发生变化时,我正在更新用户的生命时间点。如果用户点达到某个点,则给出徽章。但这两个功能不起作用。有人有什么想法吗?会是什么问题?

4

1 回答 1

1

在 app/observers/reputation_observer.rb

class ReputationObserver < ActiveRecord::Observer

  def after_update(reputation)
    # use reputation.previous_changes to get the last changes in reputation object and accordingly write your logic
  end

end

在 config/application.rb 中(激活信誉观察者)

config.active_record.observers = :reputation_observer
于 2014-07-09T06:17:44.673 回答