我正在为我的应用程序创建一个JSON API。我想使用rocket_pants for the JSON API和doorkeeper来提供OAuth2支持。
我的问题是,一旦我更改了我的控制器来扩展火箭裤控制器,看门人方法就不再可用了。
因此,只要我将控制器的声明更改为class Api::V1::ApiController < RocketPants::Base,我就会得到这个错误:
in `<class:ApiController>': undefined method `doorkeeper_for' for Api::V1::ApiController:Class (NoMethodError)这可能是有道理的,因为火箭裤没有办法知道门卫,但我想知道我应该做什么,才能让它识别门卫。
发布于 2012-07-09 01:27:43
如果您使用的是0.4.1或更高版本的看门人,您可以将看门人过滤器添加到您的控制器:
class MetalController < ActionController::Metal
include AbstractController::Callbacks # you might want to skip this for rocket_pants based controller
include ActionController::Head
include Doorkeeper::Helpers::Filter
doorkeeper_for :all
def index
self.response_body = { :ok => true }.to_json
end
end由于rocket_pants已经包含了AbstractController::Callbacks,因此您可以跳过它,因此您的控制器将如下所示:
class MetalController < RocketPants::Base
include ActionController::Head
include Doorkeeper::Helpers::Filter
version 1
doorkeeper_for :all
end维基上的这个页面可能也很有用:https://github.com/applicake/doorkeeper/wiki/ActionController::Metal-with-doorkeeper
https://stackoverflow.com/questions/11383111
复制相似问题