情况如下:
当用户创建主题时,他们可以选择是否subscribe
到此主题。
如果订阅,那么当其他用户回复他们的主题时,他们会收到通知。
我认为有两种方法可以做到。
after_create
中的topic.rb
醇>
当用户决定不订阅他们的主题时,我们会逃避这种方法。
create
TopicsController
醇>
来自用户提交的表单中的if params[‘subscribe’]
。
我认为after_create
感觉更具结构性,但把它放在模型中似乎太深了。
处理此功能的好方法是什么?
答案 0 :(得分:2)
虽然一般"胖模型,瘦瘦的控制器"这是一个很好的经验法则,对于没有经验的开发人员而言,它实际上就是那些不足以推动模型的人。
真正的规则应该是"代码应该位于代码所属的位置"。如果订阅取决于用户输入,则它不一定属于主题模型。
有时将进程打包到控制器可以调用的service object
中是有意义的。它将接受您的输入,执行一些操作,包括根据需要更新一个或多个模型,并返回结果。
答案 1 :(得分:0)