2013-08-02 39 views
10

我想了解有關Rails ActionController :: Metal控制器。我已閱讀它但不完全理解它。Rails ActionController :: Metal

它用於構建API,但我們也可以在沒有它的情況下構建API。

那麼它究竟做了什麼以及它有用多少?

任何人都可以請示例解釋它嗎?

回答

23

ActionController :: Metal本質上是ActionController :: Base的精簡版本。它主要用於API,因爲它不包含通常帶有Rails控制器的模塊,因此可以提高性能(甚至達到40%,具體取決於使用案例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 

這基本上是一個快速的方法,以確保你讓你的計算資源的最佳利用。

+0

謝謝,它幫助我解決這個問題:http://stackoverflow.com/questions/42138227/how-to-use-before-action-on-doorkeepertokencontroller/42139088#42139088與門衛! – Francois

相關問題