0

似乎它们与任何特定应用程序没有直接关系。那么他们一般应该负责什么?例如,应用程序 MVC 的哪一部分应该放在应用程序级别而不是任何特定的级别。我们如何决定是否应该将一段特定的代码放在帮助程序或视图中?

4

1 回答 1

0

应用控制器

通常ApplicationController应将其视为继承的基类ActionController::Base。虽然从技术上讲,您可以将路由操作指向ApplicationController,但这是一种不好的形式。它应该被视为您的应用程序和 Rails 代码之间的入口点。

它提供了一个通用的定制层,您可以在其中创建可在子类中使用的方法。这些实用方法通常应仅限于直接依赖于 HTTP 请求上下文的事物(例如会话数据)。一个很好的例子是current_userClearance 通过模块添加到您的 ApplicationController 的方法。

子类化ApplicationController以添加可以使用这些方法的 RESTful 控制器。

我还发现它是一个有用的地方,可以很好地rescue_from处理错误并优雅地处理它们,而不是直接重定向到 500 错误页面。

意见/申请

我通常发现这是放置共享部分的好地方,例如导航和 Flash 标记。

帮手

I find I rarely use helpers at all, preferring presenters in their place. But if you have common logic through the app that needs a view context, the application's helper is the place to store it. Helpers used in shared partials in views/application usually fit here fairly well.

于 2013-03-29T23:05:43.883 回答