У меня есть рельсы 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 и при включении беспокойство, вы должны включить его также в "Концерты", если я правильно понимаю. Я удивлен, что это не упоминается в документах.