Metal 的扩展
有一些模块和 Metal 一样也有 process_action
方法,并且它们也被 include 进了 Action Controller,并且我们自己定义的类没有重写这个方法。
根据 Ruby 的代码执行规则,执行 process_action 时它们都会被执行(并且这个方法执行顺序先于 Metal 同名的方法)。
源代码里,Metal 仅代表 metal.rb 这个文件,不包括与其同名的 metal 目录。
1) 继承 Abstract Controller 的财富
由 Metal 到 Base 继承而来。
2) 使用 Action Dispatch 的资源
主要是 Action Dispatch 的 http 和 middleware 下的内容。
包括但不限于:
处理 request、response 相关和 headers 相关。(Metal 也可以做,但这里得到了充分利用)
3) 协作 Action View
有很多类似的方法或丝丝关联,比如:渲染。
4) 少量的 Active Model
为了约定优于配置,很少的一部分方法和 Active Model 的 Naming 模块有关联。
包括但不限于:
5)提供很多方法,允许你在 Controller 或 action 里处理请求,并响应。
最后更新于