Двигатель Rails относится к автозагрузкам

У меня есть рельсы engine 'Core', и у меня есть:

# core/app/models/core/concerns/user_helper.rb
module Core
 module UserHelper
  extend ActiveSupport::Concern
  included do
  # some methods
  end
 end
end

# core/app/models/core/user.rb
module Core
 class User < ActiveRecord::Base
  include Core::UserHelper
 end
end

однако он говорит неинициализированный постоянный Core:: UserHelper. Таким образом, кажется, что двигатель не загружает свои проблемы по умолчанию, поэтому я добавил его в пути автозагрузки

module Core
  class Engine < ::Rails::Engine
    config.autoload_paths += %W(#{Core::Engine.root}/app/models/core/concerns)
    isolate_namespace Core
  end
end

И теперь я заканчиваю эту ошибку: Невозможно автоматически загрузить пользовательский UserHelper, ожидаемый myapp/core/app/models/core/issues/user_helper.rb, чтобы определить его

Итак, что здесь не так? Когда я проверил проводник http://edgeguides.rubyonrails.org/engines.html, и у него не было проблем в директории проблем, а скорее по lib/problems и была вся ссылка на забота об использовании Core:: Concerns:: MyConcern, так это, где поставить проблемы в движке?

Спасибо

Edit

Комментарий Юрия объяснил эту проблему, кажется, что в рельсах движкам проблем каталог не получает никакого специального лечения, и он рассматривается как обычный каталог под моделями, поэтому модули в нем должны находиться в пространстве имен Concerns и при включении беспокойство, вы должны включить его также в "Концерты", если я правильно понимаю. Я удивлен, что это не упоминается в документах.

7
25 июня '15 в 16:54
источник поделиться
1 ответ

Концерн должен находиться внутри приложений/моделей | контроллеры/проблемы/имя_компьютера/имя_организации .rb. Это позволит автозагрузить проблему.

Чтобы включить проблему, включите EngineName:: ConcernName.

13
01 июня '16 в 16:32
источник

Посмотрите другие вопросы по меткам или Задайте вопрос