У меня есть файл, который выглядит так
module Devise
module Mailers
module Helpers
def initialize_from_record(record)
record = hack_record(record)
@scope_name = Devise::Mapping.find_scope!(record)
@resource = instance_variable_set("@#{devise_mapping.name}", record)
end
protected
# monkey patch :D
def hack_record(record)
record.kind_of?(Hash) ? kmodel(record).where(:email=>record.first[1]['email']).first : record
end
def kmodel(record)
record.first[0].camelize.constantize
end
end
end
end
Очевидно, он заново открывает модуль Devise. Если я положу его в инициализаторах все отлично. Однако, если я помещу его в lib / devise / mailers, он будет прочитан, однако он не сможет найти другие методы из модуля, которые определены в геме Devise. Почему это так?