我的应用程序具有可在多个操作发生后实现的分数/奖励,这通常会在添加记录(完成任务等)时触发。
我写了一个相当复杂的函数来审核所有数据,并奖励适当数量的积分,用户排名等。这需要在保存这些记录之后调用。
我知道在一些模型保存之后我可以使用Observers来调用该函数,但我不清楚put函数的确切位置,以及如何调用它。
提前多多赞赏!
答案 0 :(得分:1)
观察员通常进入app/models/
。您可以使用命令rails generate observer YourModel
自动为模型生成观察者类。这将生成文件`app / models / your_model_observer.rb'。
顺便说一句,aftersave
不是一个非常具有描述性的方法名称。如果它做了很多事情,最好将它分解为几种方法,每种方法都做一件事,并给每个方法一个描述性的名称,例如:
class YourModelObserver < ActiveRecord::Observer
def after_save your_model_instance
calculate_points your_model_instance
assign_awards your_model_instance
end
private
def calculate_points inst
# ...
end
def assign_awards inst
# ...
end
end