我有一个不从Application控制器继承的API控制器。我试图包含respond_to方法并获取方法未定义错误....所以我在顶部需要actionpack,如下所示:
require 'actionpack'
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
我得到了以下内容:
LoadError(无法加载此类文件 - actionpack): app / controllers / api / v1 / users_controller.rb:1:在`&#39;
我的Gemfile和Rails 4.1.2(这是Rails 4应用程序的一部分)中已经有 gem&#39; actionpack&#39;
答案 0 :(得分:4)
bah,我刚才意识到我没有在下面添加下划线:
require 'action_pack'
答案 1 :(得分:0)
您希望将mixin一个action_pack模块放入您的ApiController中。为此,您需要include
而不是require
。如果你在Rails中,action_pack已经加载了,如果没有,你已经捆绑了action_pack gem,那么就需要它。然后你需要:
class Api::V1::UsersController < Api::ApiController
include ActionController::MimeResponds
ActionController::MimeResponds
模块将混合到您的控制器中,现在可以使用respond_to
方法。