【问题标题】:uninitialized constant Admin::ModeratorsController::ModeratorInteractor未初始化的常量 Admin::ModeratorsController::ModeratorInteractor
【发布时间】:2018-05-29 04:28:41
【问题描述】:

您好,我正在使用 ruby​​-2.3.0 和 rails 4 开发一个 RoR 项目。我正在尝试从控制器调用交互器方法。我的控制器位于 Admin 目录中,如下所示:

class Admin::ModeratorsController < Admin::ApplicationController
  include Interactor

  def index
    ModeratorInteractor.find_abc(params)
  end
end

我的交互者是:-

# frozen_string_literal: true

class ModeratorInteractor
  def self.find_abc(params)
    User.all
  end
end

当我运行我的代码时,我收到了一个错误uninitialized constant Admin::ModeratorsController::ModeratorInteractor。 我还尝试包含交互器:-

include Interactor

请帮助解决它。在此先感谢。

【问题讨论】:

    标签: ruby-on-rails interactors


    【解决方案1】:

    您需要将ModeratorInteractor 定义为module 以将其包含在您的控制器中:

    module ModeratorInteractor
      def self.find_abc(params)
        User.all
      end
    end
    

    那么你需要确保模块加载正确:

    # in application.rb
    config.autoload_paths += %W("#{config.root}/lib") # path to your module
    

    或者你也可以用require代替autoload_paths

    require "#{Rails.root}/lib/modeator_interactor"
    

    然后在你的控制器中,你可以包含它:

    include ModeratorInteractor
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多