【问题标题】:Is it possible to include Rails actionpack in a separate require statement?是否可以在单独的 require 语句中包含 Rails 动作包?
【发布时间】:2014-09-12 15:47:23
【问题描述】:

我有一个不从应用程序控制器继承的 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:in `'

我的 Gemfile 和 Rails 4.1.2 中已经有 gem 'actionpack'(这是 Rails 4 应用程序的一部分)

【问题讨论】:

    标签: ruby-on-rails ruby require actionpack


    【解决方案1】:

    呸,我才意识到我没有添加下划线:

    require 'action_pack'
    

    【讨论】:

      【解决方案2】:

      你想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

      【讨论】:

        猜你喜欢
        • 2011-08-29
        • 2013-08-24
        • 2019-11-14
        • 2015-06-09
        • 2022-11-16
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多