2017-03-29 32 views
0

首先,我必须为punny标题道歉。Rails:控制器代码失控

因为这样,我是RoR的新手,我正在研究一个规模在慢慢增长的小项目。其中一个控制器现在是一堆我想重构它的逻辑。

我从这个主题的大量问题/回答中看到的大部分是关于我认为是最佳实践的零散信息。我很难看到大局。 “放置代码的位置?”的网站有一个高层次的信息,错过了本质。

这里的问题:

什么是对代码重构出控制器的最佳做法? (位置,代码类型)

背景:我的应用程序不使用数据库,控制器中的代码主要是基于表单参数的外部API的HTTP调用,以及用于创建数组的几行逻辑获取视图消耗的数据。其中一些API调用取决于之前获取的信息。

非常感谢您提前!

MP

+0

听起来就像你已经设法将控制器和模型的责任融合在一起。控制器用于在模型和视图之间传递信息 - 基本上接收输入(参数或值)或确定输出(指示响应呈现哪个视图)。其他一切(业务逻辑,包括您的HTTP调用)进入您的模型。无论如何,你并不是真的在这里问一个特定的编程问题。在这一点上,你可能想要一个Rails书籍。 – MarsAtomic

回答

1

使用single responsibility principle,我会在app/support/创建类,app/services以达到当前已坐在你的控制器所需的功能。控制器应该是关于发送/接收请求,将你的“支持”类别的咕噜声消除。我发现this对这个问题很有用。

如果您可以证明该功能与某个特定模型和该模型有关,那么请使用该模型。我已经看到了你可以使用你的模型来实现这个逻辑的论点,但是我的观点是,一个特定的模型应该包含仅仅关注那个模型的代码。

0

在发布此答案之前,我找不到链接,但是采用相当一种方法的事情是利用帮助程序文件。这会从您的控制器和视图中获取大量代码。