/ / Rails 3 Generator plantillas personalizadas con motor - ruby-on-rails, ruby-on-rails-3, generator

Rails 3 Generator plantillas personalizadas con motor - ruby-on-rails, ruby-on-rails-3, generator

Cuando se usan los generadores de rieles con un Rails :: Engine, parece que no recoge ningún archivo de plantilla que se coloca en el directorio lib. Como se indica aquí

http://guides.rubyonrails.org/generators.html#customizing-your-workflow-by-changing-generators-templates

Ahora mismo tengo

 lib/templates/rails/scaffold_controller

También he intentado

 lib/my_engine/templates/rails/scaffold_controller

Alguien más ha intentado esto.

Respuestas

2 para la respuesta № 1

Parece que esto no es compatible con los motores.

En una aplicación de Rails, Finisher se encarga de agregar esto a la ruta.

module Rails
class Application
module Finisher
include Initializable

initializer :add_generator_templates do
config.generators.templates.unshift(*paths["lib/templates"].existent)
end

......

Por lo tanto, esto debe hacerse en la configuración del motor para que esto funcione.

module MyEngine
class Engine < ::Rails::Engine
config.generators.templates.unshift File.expand_path("lib/templates", root)
end
end

¿Es este un error o el comportamiento deseado?


0 para la respuesta № 2

La respuesta anterior (por el mismo Stellard) no soluciona mi caso en Rails 3.2, pero ¿Cómo anular una plantilla de generador de rieles en una gema? arreglalo. Solo señalo para la persona como yo.


0 para la respuesta № 3

Si utiliza rails g generator MyGenerator en la ruta raíz de un motor Rails 3.2 obtendrás algo como esto:

class MyGenerator < Rails::Generators::NamedBase
source_root File.expand_path("../templates", __FILE__)
end

que no contamina tu Engine Clase y es mucho más localizada al generador.