Ruby on rails ActionController::API和ApplicationController之间有什么区别

Ruby on rails ActionController::API和ApplicationController之间有什么区别,ruby-on-rails,Ruby On Rails,我有一些用于API响应的控制器,但应用程序的其余部分是一个常规的Rails 5应用程序 如果我将基类更改为 ApplicationController::API 对 ApplicationController 我注意到如果我使用::API,那么我需要在渲染时添加json: 在幕后,当从API继承时,请求/响应是否更加精简 class Api::V1::TestController < ???? def index msg = {status: "ok", message:

我有一些用于API响应的控制器,但应用程序的其余部分是一个常规的Rails 5应用程序

如果我将基类更改为

ApplicationController::API

ApplicationController
我注意到如果我使用::API,那么我需要在渲染时添加json:

在幕后,当从API继承时,请求/响应是否更加精简

class Api::V1::TestController < ????
  def index
    msg = {status: "ok", message: "hello world"}
    render json: msg
  end
end
class Api::V1::TestController<????
def索引
msg={状态:“ok”,消息:“hello world”}
呈现json:msg
结束
结束
来自(这是对的第一次点击)

API控制器是ActionController::Base的轻量级版本,它是为不需要完整Rails控制器提供的所有功能的应用程序创建的,允许您创建具有仅API应用程序所需功能的控制器

API控制器与普通控制器的不同之处在于,默认情况下,它不包括浏览器访问通常只需要的许多功能:布局和模板呈现、cookie、会话、flash、资源等。这使得整个控制器堆栈更薄,适用于API应用程序。这并不意味着如果您需要这些功能,您就没有这些功能:它们都可以包含在您的应用程序中,只是它们不是默认API控制器堆栈的一部分

从(这是第一次击中)

API控制器是ActionController::Base的轻量级版本,它是为不需要完整Rails控制器提供的所有功能的应用程序创建的,允许您创建具有仅API应用程序所需功能的控制器

API控制器与普通控制器的不同之处在于,默认情况下,它不包括浏览器访问通常只需要的许多功能:布局和模板呈现、cookie、会话、flash、资源等。这使得整个控制器堆栈更薄,适用于API应用程序。这并不意味着如果您需要这些功能,您就没有这些功能:它们都可以包含在您的应用程序中,只是它们不是默认API控制器堆栈的一部分