У нас есть проблема, которую мы хотим использовать в качестве микса для наших классов пользователей. Эта проблема встречается в нашем отдельном двигателе рельсов, который мы используем для нескольких продуктов.Использование Концерна, вложенного в модуль
Все в этом двигателе, мы храним в том же модуле, который мы будем называть MyEngine.
module MyEngine
module EngineUser
extend ActiveSupport::Concern
end
end
И мы Тринг, чтобы включить его, как и любой другой интерес в нашем Rails Применение:
class User < ActiveRecord::Base
include MyEngine::EngineUser
# ...
end
Это вызывает ошибку, когда он говорит: (форматированный некоторые для удобства чтения)
/Users/foo/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:495:in `load_missing_constant ':
Невозможно автозагрузку постоянной EngineUser, ожидается /Users/foo/Perforce/engine_folder/app/models/concerns/engine_user.rb определить его
Какой ..... это правильный файл .. . <. <
Если я удалю module MyEngine
вокруг класса и сформирую его в User, он будет работать нормально.
Я знаю, что рельсы делают автозагрузку за кулисами, но почему это не работает? Он знает, что файл имеет класс ... если я переведу его в engine/app /, то он говорит, что он не может найти его там. Настолько разочаровывающе.
Так что я думаю, что это работает, но я закончил тем, что перешел к другому решению, которое я отправлю в ближайшее время. Спасибо, хотя! – Avaista