ruby-on-rails - Rails - 如何避免必须从另一个 Controller 中的创建操作触发一个 Controller 中的创建操作

标签 ruby-on-rails model-view-controller controller action

这里原谅一个基本的问题。

通过阅读,我了解到从另一个 Controller 触发创建操作并不是最佳做法 - 我正在寻找有关在以下情况下应该如何组织代码的建议:

I have two controllers: cases and notifications.

When a new case is created I want it to also create a new notification.

The notification create action creates a new instance in it's model, and sends an email.

我认为我不应该只从我的案例 Controller 调用 Notification#create 是否正确?我应该将其提取到助手或模块中吗?如果是这样,它会是什么样子?关于这个主题的其他大致相似的帖子没有详细说明。

谢谢。

最佳答案

由于 create 是一个 POST 方法,我认为没有办法从案例 Controller 调用通知 Controller 的创建。我的建议是将通知实例的创建和发送邮件逻辑移动到案例模型的保存之前。这将在每次创建案例时创建一个通知,并且还将处理邮件发送机制。由于这是您业务需求的一部分,因此最好将业务逻辑移至您的模型中。

关于ruby-on-rails - Rails - 如何避免必须从另一个 Controller 中的创建操作触发一个 Controller 中的创建操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395728/

相关文章:

ruby-on-rails - 简单的 redirect_to 显示路径不起作用

c++ - QTreeView 的 Qt 样式表

asp.net-mvc - MSFT报表查看器(rdlc)是否可以与MVC一起使用

javascript - Node JS - MVC - 命名约定

ruby-on-rails - 博客条目和评论的倒序显示,Ruby on Rails

php Laravel ~ 属性 [controller] 不存在

ruby-on-rails - 无法在Lion,Rails3应用程序上使mysql2 gem与MAMP2和RVM一起使用

mysql - 显示 mySQL 数据库中唯一记录的总数

mysql - Ruby on Rails 并发

java - @GetMapping 返回列表为空的字符串信息