Я пытаюсь расширить модель от двигателя 1 с заботой от двигателя 2 с помощью инициализатора приложения, но я получаю какое-то странное поведение, вот что у меня есть:Расширение моделей двигателей Rails 4 с опасениями
Концерн
module Engine2
module Concerns
module MyConcern
extend ActiveSupport::Concern
included do
puts "Concern included!"
end
def jump
puts 'Jumping!!!!'
end
end
end
end
Initializer
require 'engine2/my_concern'
module Engine1
class Member
include Engine2::Concerns::MyConcern
end
end
При загрузке вверх Applic ция, я вижу, как ожидают Concern included!
сообщений в консоли, а Member
класса может вызвать метод jump
, но как только я изменить любой код в хосте-приложении, которое я получаю следующее сообщение об ошибке:
NoMethodError (undefined method 'jump' for #<Engine1::Member:0x007fe7533b4f10>)
и я должен перезагрузить сервер, тогда он отлично работает, пока я не сделаю другое изменение в главном приложении, затем он снова выдаст ошибку, почему это происходит и как я могу избежать этого?
Есть ли лучшее место, где я должен выполнить открытие класса, чтобы включить проблему вместо инициализатора?