我在 Rails 4.1.2 应用程序中有一个 API 控制器,它不是从应用程序控制器继承的。我正在尝试包含 respond_to 方法并得到一个方法未定义的错误......所以我需要在顶部的 actionpack,如下所示:
require 'action_pack'
class Api::V1::UsersController < Api::ApiController
version 1
doorkeeper_for :all
respond_to :json
def show
respond_with current_user.as_json(except: :password_digest)
end
end
我仍然得到
ActionController::RoutingError (undefined method `respond_to' for Api::V1::UsersController:Class):
但是 respond_to 方法是 MODULE ActionController::MimeResponds::ClassMethods 的一部分,如果我打开 actionpack gem 源代码,可以在子目录中的 action_pack 文件夹下找到它。
编辑:
我还应该提到 Api::ApiController 有一个父 RocketPants::Base 因为我正在使用 Rocketpants api gem ... gem 的作者在他的自述文件中说:“RocketPants 只包括制作 apis 的最低限度。在不久的将来,它可以被修改为与 ActionController::Base 一起使用,以便更好地与其他 gem 兼容。”
我对如何以独立的方式访问 action_pack 方法/库(如果可能的话)特别感兴趣,就像您在包含 activesupport 时可以使用的方式一样。