是否可以在单独的require语句中包含Rails actionpack?

时间:2014-07-22 00:19:15

标签: ruby-on-rails ruby require actionpack

我有一个不从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;

2 个答案:

答案 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方法。

Read the source, Luke