Ciao a tutti,
Ho creato una Rails engine per metterci un po’ di codice, tra cui delle
viste personalizzate per lo scaffold (per intenderci quelle che in una
app Rails vanno in lib/templates/haml/scaffold/), che poi riutilizzo in
varie app.
Tuttavia non trovo il modo di fare caricare quelle viste custom alla app
che include la mia engine Sancho: continua ad utilizzare quelle di
default.
Ecco il contenuto di lib/sancho/engine.rb:
module Sancho
class Engine < ::Rails::Engine
isolate_namespace Sancho
initializer :add_generator_templates do
config.generators.templates.unshift(File::expand_path('../templates',
Seguendo quella guida non avrai problemi, in più ti aggiungo qualche
indicazione su come ho creato il mio.
Ho creato una classe ScaffoldGenerator ma con i miei puntamenti:
controller e template
#lib/rails/sancho/sancho_generator.rb
module Rails
module Generators
class SanchoGenerator < ::Rails::Generators::ScaffoldGenerator
remove_hook_for :scaffold_controller
hook_for :sancho_controller, :required => true
end
end
end
#lib/rails/sancho_controller/sancho_controller_generator.rb
module Rails
module Generators
class SanchoControllerGenerator <
::Rails::Generators::ScaffoldControllerGenerator
# customize
end
end
end
#lib/erb/sancho/sancho_generator.rb
module Erb
module Generators
class SanchoGenerator < ::Erb::Generators::ScaffoldGenerator
# customize
end
end
end
Prima di poter utilizzare un nuovo generatore devi definirlo nella tua
applicazione
#config/application.rb
module YourApp
class Application < Rails::Application
config.generators do |g|
g.sancho_controller :sancho_controller
end
...
end
end
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.