我已经构建了一个Stripe SaaS应用程序,有点像Byron Bowerman的stripe-example。
来自Stripe的通知称为“webhooks”,包括付款是成功还是失败等信息。在我的应用程序中,stripe-event gem接收它们,然后将信息传递给Webhook模型以保存在数据库中。
我想使用这些事件来触发操作:
问题是哪个班级应该采取这些行动,以及应该如何通知?
有几个选择:
1)在Webhook模型中
很容易,但感觉不在这个课程的责任范围内。
2)Webhook Observer(s)
一个观察者,或不同行动的独立观察者?
3)Rails通知
Webhook模型每次收到webhook时都会发出ActiveSupport::Notification
。这可以由应用程序中任何位置的类订阅。如果我去了这条路线,那么在User模型,UsersController或其他地方执行此操作是否合适?
我对这种方法的担心是,在他的railscast on notifications中,Ryan Bates建议“通知最适合用于日志记录和不修改应用程序核心行为的代码。”
4)......?
你有什么建议?