Можно ли изменить драгоценный камень рельсы через инициализатор?
Моя цель состоит в том, чтобы настроить gem rails-multisite, чтобы разрешить конфигурационные файлы для конкретной среды.
Класс ConnectionManager имеет config_file=
метод и default_config_file
метод, но gems railtie немедленно и принудительно требует наличия файла конфигурации по умолчанию, загрузит этот файл и подключится к любой базе данных, которую вы указали с аргументом RAILS_DB=.
Я пытался залатать default_config_file
метод, попытался установить конфигурацию после инициализации, но railtie уже был загружен этими точками и пытается загрузить файл по умолчанию, который я удалил. Не удается и ошибки.
Патч, который я хочу поставить на место:
module RailsMultisite
class ConnectionManagement
def self.default_config_filename
File.absolute_path(Rails.root.to_s + "/config/multisite-#{Rails.env}.yml")
end
end
end
Railtie при запуске работает с исходным кодом gem, а не с моим патчем (предположительно, к тому времени еще не достиг моего инициализатора), и поэтому выдает ошибку для отсутствующего файла конфигурации по умолчанию.
Мне немного не хватает знаний о рельсах, возможно ли то, что я хочу сделать? Могу ли я изменить Railtie в инициализаторе, чтобы он мог использовать мою логику для поиска файла конфигурации?