我正在重新设计我的活动提要,我已经用 redis 和 rails 实现了逻辑(顺便说一句,效果很好)但我仍然不确定如何创建/触发事件。
在我的第一种方法中,我使用了观察者,它的缺点是没有 current_user 可用。而且,无论如何使用观察者都是一个坏主意:)
我首选的方法是在控制器中创建/触发事件,它应该看起来像:
class UserController < LocationController
def invite
...
if user.save
trigger! UserInvitedEvent, {creator: current_user, ...}, :create
....
end
end
end
触发方法应该
- 使用一些参数创建 UserInvitedEvent。(:create 可以是默认选项)
- 可以停用(例如停用以进行测试)
- 可以用例如 resque 执行
我查看了一些宝石(fnordmetrics,...),但我找不到一个巧妙的实现。