ActionController :: Metal è essenzialmente una versione ridotta di ActionController :: Base. Viene utilizzato principalmente per le API perché non include i moduli che in genere vengono forniti con un controller Rails, migliorando così le prestazioni (anche del 40%, a seconda del caso d'uso https://gist.github.com/drogus/738168).
Dato che include solo la funzionalità di controller di base, è possibile aggiungere solo le funzionalità necessarie per le proprie classi. Ad esempio, si può aggiungere il rendering, token di funzionalità di autenticazione e filtraggio:
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
E 'fondamentalmente un metodo rapido per garantire che si fanno il miglior uso delle vostre risorse di elaborazione.
Grazie, mi ha aiutato a risolvere questo: http://stackoverflow.com/questions/42138227/how-to-use-before-action-on-doorkeepertokencontroller/42139088#42139088 with Doorkeeper! – Francois