【发布时间】:2012-08-11 14:34:55
【问题描述】:
我有这个简短的代码,用于在有人在他的帖子上出现时向用户发送电子邮件通知。我关心的是这个sn-p的位置。
if user.settings.enabled_notifications && some_other_conditions
NotificationMailer.notify_topic_owner(comment,owner)
end
notify_topic_owner()只是根据传递给它的参数发送邮件。
基本上,some_other_conditions 包含一些 3-4 个条件来评估为真以便发送邮件。很明显,控制器不是此代码的正确位置(我在某处读到控制器代码应该轻巧干净)。
我不认为我可以将此 sn-p 移动到助手,因为助手包含视图代码。同样,模型看起来也不正确,因为代码实际上与模型无关(或者是吗?)。
我要为这个简短的 sn-p 创建一个新模块吗?展望未来,如果您还可以讲述最佳实践或针对此类沉闷困惑的一些参考,我将不胜感激。我发现自己经常为此苦苦挣扎!
【问题讨论】:
-
这是切题的,但您可能有兴趣阅读Law of Demeter;我还发现 Destroy All Software 是一个很棒的截屏视频系列,里面有很多很棒的建筑视频。
-
看起来是一组不错的截屏视频,感谢 Brandon!
标签: ruby-on-rails model-view-controller