rails 4中的AbstractController和ActionController之间的区别

时间:2013-09-01 10:07:02

标签: ruby-on-rails

AbstractControllerActionControllerrails 4之间的区别是什么? 他们做了什么以及他们有何不同?

2 个答案:

答案 0 :(得分:4)

AbstractController提供了结构,ActionController是与Web相关呈现相关的结构的一种实现。

AbstractController的核心是render方法。抽象控制器以尽可能通用的方式列出需要发生的事情(规范化参数,过程格式等),但它并不涉及任何细节。

ActionControllerAbstractController的具体实现。 ActionController::Base类提供了render方法,该方法添加了特定的web风格。它关注requestresponsehttpAbstractController

中不存在的内容

希望有所帮助

答案 1 :(得分:1)

AbstractController::Base是一个低级API。没有人应该直接使用它,并且子类(如ActionController::Base)应该提供自己的渲染方法,因为渲染意味着不同的东西,具体取决于上下文。

这是直接从文档中获取的:http://api.rubyonrails.org/classes/AbstractController/Base.html