它们似乎与任何特定的应用程序都没有直接关系。那么,他们通常应该对什么负责呢?例如,应用程序MVC的哪一部分应该放在应用程序级别,而不是放在任何特定的级别。我们如何决定是否应该将一段特定的代码放在helper或view中?
发布于 2013-03-30 07:05:44
ApplicationController
通常应将ApplicationController视为继承ActionController::Base的基类。虽然从技术上讲,您可以将路由操作指向ApplicationController,但这并不是一种好的形式。它应该被视为应用程序和Rails代码之间的入口点。
它提供了一个通用的定制层,您可以在其中创建可在子类中使用的方法。这些实用程序方法通常应仅限于直接依赖于HTTP请求上下文的内容(如会话数据)。一个很好的例子是current_user方法,Clearance通过一个模块添加到您的ApplicationController中。
将ApplicationController子类化,以添加可以使用这些方法的RESTful控制器。
我还发现它是一个有用的rescue_from错误的地方,并优雅地处理它们,而不是直接重定向到500错误页面。
视图/应用程序
我通常发现这是一个放置共享部分的好地方,比如导航和flash标记。
帮助者
我发现我很少使用助手,更喜欢用演示者来代替他们。但是,如果您在应用程序中有需要视图上下文的通用逻辑,那么应用程序的helper就是存储它的地方。在视图/应用程序的共享部分中使用的Helpers通常非常适合这里。
https://stackoverflow.com/questions/15712535
复制相似问题