неинициализированная константа Admin :: ModeratorsController :: ModeratorInteractor - PullRequest
0 голосов
/ 29 мая 2018

Привет, я работаю над проектом RoR с ruby-2.3.0 и rails 4. Я пытаюсь вызвать метод интерактора из контроллера.Мой контроллер находится в каталоге 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.Я также пытаюсь включить Interactor: -

include Interactor

Пожалуйста, помогите, как это исправить. Заранее спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Вам необходимо определить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...