2013-08-02 27 views
10

Tôi muốn hiểu về Rails ActionController :: Bộ điều khiển kim loại. Tôi đã đọc về nó here nhưng không hiểu nó hoàn toàn.Điều gì thực sự làm Rails ActionController :: Metal

Nó được sử dụng để xây dựng API nhưng chúng tôi cũng có thể tạo API mà không cần API.

Vì vậy, nó chính xác làm gì và nó hữu ích bao nhiêu?

Xin vui lòng bất cứ ai có thể giải thích nó bằng các ví dụ?

Trả lời

23

ActionController :: Kim loại cơ bản là phiên bản rút gọn của ActionController :: Base. Nó chủ yếu được sử dụng cho API bởi vì nó không bao gồm các mô-đun thường đi kèm với bộ điều khiển Rails, do đó cải thiện hiệu suất (thậm chí 40%, tùy thuộc vào trường hợp sử dụng https://gist.github.com/drogus/738168).

Với thực tế là nó chỉ bao gồm các chức năng điều khiển cơ bản nhất cho phép bạn chỉ thêm các tính năng cần thiết cho các lớp học của riêng bạn. Ví dụ: người dùng có thể thêm chức năng hiển thị, xác thực mã thông báo và chức năng lọc:

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 

Về cơ bản, đây là phương pháp nhanh để đảm bảo bạn sử dụng tốt nhất tài nguyên tính toán của mình.

+0

Cảm ơn bạn, nó đã giúp tôi giải quyết vấn đề này: http://stackoverflow.com/questions/42138227/how-to-use-before-action-on-doorkeepertokencontroller/42139088#42139088 với Doorkeeper! – Francois

Các vấn đề liên quan