这是一个关于如何组织代码的问题,我无法决定什么是最好的,我也没有清楚地发现在以下情况下什么是最佳实践:
我有模型A。创建后,我需要创建3个模型B、4个模型C和一个未定义数量的模型D,所有这些都与模型A有关。我的代码按预期工作,这实际上是一个问题,我应该把代码放在哪里来完成这一切。
目前,在模型A控制器的create
操作中,在保存模型A之后,我有4个处理所有逻辑的服务。但当我rails db:seed
时,我必须重复对这4个服务的呼叫。所以我很想把这4个调用放在模型A的after_create
回调中,但这不是打破了单一责任模式吗?此外,我还有第五个处理通知的服务,我不想把它放在模型回调中,所以我不会每次rails db:seed
都收到很多通知。
也许我所做的已经是正确的,并遵循了最佳实践,但我对此不确定,我需要你们这些善良的读者的确认或意见。
PS:对不起英文:-(
您做得很好,因为应用程序回调的可伸缩性会让人头疼。小文章为什么最好避免回调。
http://codeatmorning.com/3-reasons-to-avoid-rails-callbacks/