как перезаписать файлы движка rails, которые находятся в каталоге lib?

Я хочу перезаписать файл движка rails, но этот файл находится в каталоге lib/rails этого движка. Когда я беру тот же файл и помещаю его в свой каталог lib/rails, он не перезаписывает файл. Похоже, что rails обрабатывает каталог lib иначе, чем файлы say, находящиеся в каталоге приложения.

Также я не могу поместить этот файл в папку инициализатора (в соответствии с этим решением), так как имя файла совпадает с именем существующего файла, который необходим. Каков правильный способ сделать это?


person HelloWorld    schedule 31.07.2012    source источник


Ответы (1)


Лучший способ, который я нашел для решения этой проблемы, - добавить

require "#{Rails.root}/lib/path/to/file"

в конце config/application.rb. Загрязнение минимально и дает тот же эффект, что и переопределение.

В настоящее время он используется в проекте Spree для переопределения lib/spree_samples.rb.

Изменить

В этом ответе найден лучший способ: Перегрузка файлов lib из драгоценного камня, смонтированного как движок

По сути, поместите файл, который вы хотите переопределить, в каталог config/initializers.

person pfac    schedule 13.07.2013