从rails调用系统命令 - 一般设计模式

时间:2017-04-15 15:56:14

标签: ruby-on-rails

Rails新手在这里,构建一个rails api后端应用程序。

以下是广泛的申请流程

有一个模型palindrome,其字符串类型为name

在最简单的用户交互中,用户客户端将POST与字符串name一起发送到PalindromeController。

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

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

  1. 我应该从模型或控制器中调用systemapp
  2. 是否应将systemapp的电话打包在后台工作中?

1 个答案:

答案 0 :(得分:1)

  1. 从模型中调用它。

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

    对于它去向何处进行的测试是“如果没有该子程序,你的模型将会或者应该能够做任何事情”。如果是,则是依赖注入的情况,并且可以进入控制器。如果“否”,则进入模型。

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

  2. 如果性能可以接受,直接执行,即如果没有正常用户活动的风险压倒网络服务器。否则,您将使用延迟执行,即批处理,这将产生非常大的最终结果。