2017-04-15 36 views
0

Rails新手在这里,构建一个rails api后端应用程序。从rails调用系统命令 - 一般设计模式

这里是广阔的应用流

有具有串的字段name

在最简单的用户交互的用户客户端的单个模型palindrome发送POST与串name到PalindromeController。

该字符串需要传递给系统应用程序systemapp,该应用程序将返回另一个字符串。这需要被解析为JSON字符串并返回给客户端。

有关如何进行以下操作的问题。

  1. 我应该在哪里从模型或控制器调用systemapp
  2. 应该调用systemapp包装在后台作业中吗?

回答

1
  1. 从模型中调用它。

    如果这是一个更复杂的情况,您可以将子程序视为适当的接口并为其编写一个单独的类。这一个我可能会放入lib/interfaces或甚至我一个单独的宝石,因为它将只包含特定于子程序的代码,而不是您的应用程序。

    对于它所处的位置,缺乏测试是“你的模型能否或者应该在没有该子程序的情况下做任何事情”。如果是的话,那么这是一种依赖注入的情况,可以进入控制器。如果“否”,那么它会进入模型。

    经验法则:胖模型,精益控制器。

  2. 如果性能是可以接受的话,也就是说,如果没有正常用户活动威胁Web服务器的风险,那么直接进行。否则,您将使用延迟执行,即批处理,这将导致更大的最终结果。