Мы поняли это.В конфигурации генератора есть переменная templates, в которой перечислены пути поиска шаблонов.Проблема действительно в том, что он ищет этот массив по порядку, пока не найдет совпадение, поэтому шаблоны в вашем приложении или в Rails будут найдены до шаблонов в вашем геме.
Решение состоит в том, чтобы Railtie вашего драгоценного камня поместилопуть к шаблонам на начало массива путей к шаблонам.Похоже на это.Этот файл находится в [GEM] /lib/my_gem.rb.Шаблоны параллельны этому в [GEM] / lib / templates /.
module MyGem
class Railtie < Rails::Railtie
config.generators do |g|
g.templates.unshift File::expand_path('../templates', __FILE__)
end
end
end
Если шаблоны внутри [GEM] / lib / templates имеют путь к шаблону по умолчанию, который вы переопределяете, это должно работать.Например, если вы это сделали и создали [GEM] /lib/templates/active_record/model/model.rb, он переопределит шаблон модели AR по умолчанию.
Не требуется патч-генератор для генераторов.
РЕДАКТИРОВАТЬ: Обратите внимание, что с тех пор, как этот ответ был первоначально опубликован, "config.generators" был удален из Rails.Вместо этого используйте config.app_generators
согласно ответу pixelearth ниже.