Rails ActionController::Metal 的实际作用是什么

2024-03-27

我想了解一下Rails ActionController::金属控制器。我读过相关内容here http://api.rubyonrails.org/classes/ActionController/Metal.html但不完全理解。

它用于构建 API,但我们也可以在没有它的情况下构建 API。

那么它到底有什么作用以及有多大用处呢?

请问有人可以用例子解释一下吗?


ActionController::Metal 本质上是 ActionController::Base 的精简版本。它主要用于 API,因为它不包含通常附带 Rails 控制器的模块,从而提高性能(甚至可以提高 40%,具体取决于用例https://gist.github.com/drogus/738168 https://gist.github.com/drogus/738168).

鉴于它只包含最基本的控制器功能,您可以只为自己的类添加所需的功能。例如,可以添加渲染、令牌身份验证和过滤功能:

class ApiGenericController <  ActionController::Metal
   include ActionController::Rendering
   include ActionController::Renderers::All  
   include ActionController::MimeResponds
   include ActionController::ImplicitRender
   include AbstractController::Callbacks
   include ActionController::HttpAuthentication::Token::ControllerMethods

它基本上是一种确保您充分利用计算资源的快速方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails ActionController::Metal 的实际作用是什么 的相关文章

随机推荐

  • 在给定总数、部分数和最大被加数的情况下查找整数分区的数量

    我正在寻找总共 N 个整数分区的数量 其中多个部分为 S 最大部分恰好为 X 而无需枚举所有分区 例如 所有 100 的分区都有 10 个部分 最大部分为 42 我没有找到解决这个问题的定理或分区恒等式 我怀疑这是一个不平凡的问题 不容易从
  • FCM 获取 MismatchSenderId

    我有一个使用 Google FCM 发送推送通知的应用程序 当我向一组用户发送推送通知时 我得到的响应是MismatchSenderId对于其中一些人来说 尽管如此 所有用户都拥有完全相同的应用程序 如何某些用户获得成功响应 而其他用户获得
  • iphone如何通过Xcode拍照后进入图片库

    大家好 我正在实施以下代码来通过我的应用程序拍照 UIApplication sharedApplication keyWindow setRootViewController picker picker sourceType UIImag
  • 找不到模块 create-react-app/script/start.js

    我的程序结构发生了一些变化 由于其复杂性 我无法准确指出问题所在 自从我的应用程序崩溃并且不再工作以来 我尝试了不同的方法 例如删除节点模块包并重新安装它们 但仍然无法工作 每当我尝试跑步时npm 启动我收到以下错误 below is my
  • 使用密码保护关闭的工作簿

    我已经搜索过 但没有找到在关闭的工作簿上添加外部密码的方法 假设我已经关闭了名为 Sample xlm 的工作簿 并且我正在打开一个名为 Test xlm 的工作簿 是否有代码可以让我在 Sample xlsm 上设置密码 我的意思是外部密
  • 空状态页面和导航器问题?

    我想实施空状态页 https material io design communication empty states html content在 Flutter 应用程序中 当新闻源为空时 当提要中没有活动时 我想显示 没有活动 当数据
  • 如何将服务变量与组件 Angular 2 绑定?

    我有一个变量 public tick number 在服务中 该服务注入了另一个服务计时器 它的启动方式如下 class Service constructor public timer TimerService public sendSm
  • Python 和类似字典的对象

    我需要一个用于字典的 python 3 1 深度更新函数 该函数将递归更新父字典内的子字典 但我认为 将来 我的函数可能必须处理行为类似于字典但实际上并非如此的对象 此外我想避免使用isinstance and type 因为它们被认为是不
  • 无法运行 React-Native UIExplorer 示例项目

    我一直在尝试在 Windows 上运行 UIExplorer 项目 我收到以下错误 make D react native ReactAndroid build tmp buildReactNdkLib local armeabi v7a
  • Gunicorn + nginx:通过套接字还是代理服务器?

    我见过两种使用 Gunicorn 和 nginx 托管 django 应用程序的策略 一种策略是在网络端口上运行 Gunicorn 例如 来自goodcode https goodcode io articles django nginx
  • jQuery TouchSwipe 插件不适用于链接?

    我正在使用 jQuery TouchSwipe 插件 它在 div 上工作得很好 但在链接上根本不起作用 我想要它 因此如果您点击或单击链接 您将获得默认的链接行为 但是如果你滑动 我希望 javascript 滑动能够像元素是 div 一
  • Java 相当于 .NET Action 和 Func 等[重复]

    这个问题在这里已经有答案了 Java 中是否有标准的通用 回调 或 函数 方法 类型 例如System Action
  • ASP.NET 网站项目何时重新编译?

    As Maurico https stackoverflow com users 21239 mauricio scheffer and codeka https stackoverflow com users 241462 codeka首
  • 如何使用 Ecto 的时间戳向现有表添加时间戳?

    Since inserted at and updated at不可能是null这是行不通的 def change do alter table channels do timestamps end end Postgrex Error E
  • 在 Outlook 2013 中调用功能区按钮

    我们有一个 Outlook 插件 我们需要以编程方式取消任务项检查器窗口中的任务分配 就像取消分配按钮一样 人们会认为调用TaskItem CancelResponseState 可能会起作用 虽然它确实取消了分配 但它也使任务处于不可分配
  • 使用 RequestAnimationFrame 实现准确计时

    到目前为止 我还没有找到很多关于这个主题的文档 我的总体感觉是 在为浏览器实现动画时 最好使用 RequestAnimationFrame 而不是 bog 标准 JavaScript 计时器 我的理解是计时器不可靠 并且它们的分辨率在不同浏
  • Windows 8 Phone - 访问 NFC 读卡器?

    简短的问题 我可以使用支持 NFC 的 Windows Phone 8 读取信用卡信息吗 长问题 NFC 与信用卡如何工作 卡 或具有钱包功能的手机 通过 NFC 接收请求并以某种标准化格式回复明文信用卡信息 那么 钱包选项在广播信用卡信息
  • 传送仅公开 C api 的 C++ dll

    我正在编写一个软件 其 API 仅为 C 语言 因为很容易将 C 代码与其他软件 客户端链接起来 然而 实际的程序代码是用 C 完成的 使用所有常见的 C 功能 如异常 STL 等 导出的 API 标头本身将用纯 C 编写 其中export
  • 如何使用 pandas tz_convert 转换为多个不同时区

    我有一些数据如下所示hour以世界标准时间 UTC 表示 我想创建一个名为的新列local hour基于time zone 我怎样才能做到这一点 好像是熊猫的tz convert不允许列或 pandas 系列作为输入tz争论 Create
  • Rails ActionController::Metal 的实际作用是什么

    我想了解一下Rails ActionController 金属控制器 我读过相关内容here http api rubyonrails org classes ActionController Metal html但不完全理解 它用于构建