Я строю собственные генераторы для генерации моделей рельсов. Генератор может использовать один из множества шаблонов для построения одной модели. Некоторые логики c одинаковы во всех шаблонах.
Можно ли извлечь некоторые части шаблонов в партиалы?
Вот пример того, что я хочу сделать:
lib/generators/custom_model/custom_model_generator.rb
class CustomModelGenerator < Rails::Generators::Base
source_root File.expand_path('../templates', __FILE__)
argument :model_name, type: :string
argument :model_type, type: :string
...
include GeneratorsHelper
def generate_model
template_path =
case model_type
when 'car' then 'car_model.rb.erb'
when 'plane' then 'plane_model.rb.erb'
...
end
template template_path, "app/models/#{model_name}.rb"
end
end
Вот один шаблон:
lib/generators/custom_model/templates/car_model.rb.erb
class <%= model_name.camelcase %> < ApplicationRecord
def start
puts "Vroum!"
end
end
Метод #start
также будет использоваться в другом генераторы моделей. Я хотел бы извлечь это что-то вроде частичного. Это возможно?