Как правильно настроить, создать или включить задачу в Rails - PullRequest
0 голосов
/ 24 сентября 2018

Обычно проблемы находятся в

app/controllers/concerns.

Но я хочу сделать и разделить проблемы для стороны администратора.

app/controllers/admin/concerns

Учитывая, что я настроил некоторые примеры кодов,

# app/controllers/admin/concerns/test.rb
module Test
  extend ActiveSupport::Concern

  included do
    before_action :test
  end

  def test
    render json: 'test concern'
  end
end

# ТАКЖЕ попробовал ...,

module Admin
  module Test
    extend ActiveSupport::Concern

    included do
      before_action :test
    end

    def test
      render json: 'test concern'
    end
  end
end

#, затем включите как, включите Admin :: Test

Как правильно позвонить или включить тестовый запрос в мой админ-контроллер.

class Admin::ShopsController < Admin::BaseController
   include Admin::Test # doing this,
   # got uninitialized constant Admin::Test
end

1 Ответ

0 голосов
/ 24 сентября 2018

Соответствующее объяснение было написано в официальном руководстве.

Хорошо, в Rails есть коллекция каталогов, похожих на $ LOAD_PATH, в которой можно искать post.rb.Эта коллекция называется autoload_paths и по умолчанию она содержит:

Любые существующие каталоги второго уровня, называемые app / * / Security, в приложении и механизмах.

https://guides.rubyonrails.org/autoloading_and_reloading_constants.html

Причина, по которой app/controllers/admin/concerns не загружается, заключается в том, что это не каталог второго уровня.

Поскольку файлы в каталоге второго уровня загружаются автоматически, в этом случае следует поместить файл test.rb вapp/controllers/concerns/admin.

Или добавление app/controllers/admin/concerns к пути автозагрузки, но это не рекомендуется, поскольку это не соответствует схеме проектирования рельсов.

...