2013-08-02 17 views
10

Voglio comprendere il controller Rails ActionController :: Metal. Ho letto su di esso here ma non lo capisco completamente.Che cosa fa Rails ActionController :: Metal

Viene utilizzato per creare API ma possiamo anche creare API senza.

Quindi cosa fa esattamente e quanto è utile?

Può piacere a qualcuno spiegarlo con esempi?

risposta

23

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.

+0

Grazie, mi ha aiutato a risolvere questo: http://stackoverflow.com/questions/42138227/how-to-use-before-action-on-doorkeepertokencontroller/42139088#42139088 with Doorkeeper! – Francois