0

嗨,我正在使用 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

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

4

1 回答 1

1

您需要定义ModeratorInteractormodule将其包含在您的控制器中:

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
于 2018-05-29T06:25:00.830 回答