2011-07-11 5 views

Respuesta

11

Esto puede sonar tonto, pero escúchame ... he hecho cosas como esto un par de veces a mí mismo cuando quería empezar limpio. Lo que sigue es un script que va a leer el esquema y producir el necesario generar mandatos para reproducirlo:

require 'rubygems' 
require 'active_support/core_ext' 
schema = File.read('db/schema.rb') 
schema.scan(/create_table "(\w+)",.*?\n(.*?)\n end/m).each do |name, ddl| 
    puts "rails generate scaffold #{name.classify} " + 
    ddl.scan(/t\.(\w+)\s+"(\w+)"/). 
    reject {|type,name| %w(created_at updated_at).include? name}. 
    map {|type,name| "#{name}:#{type}"}.join(' ') 
end 

Si ejecuta este, recibirá una serie de comandos. En un nuevo directorio, cree una nueva aplicación de rieles y luego ejecute estos comandos (bastará con copiarlos y pegarlos). Toma los archivos que quieras. Borre el directorio cuando haya terminado.

+0

Eso es útil. Gracias. –

+1

Esto es bueno, pero https://github.com/frenesim/schema_to_scaffold ha concretarse esto más a fondo. – dankohn

2

No creo que hay un comando para generar un solo archivo ... solamente todo un andamio.

¿Hay una razón por la que desea generar ese archivo? ¿No estás seguro de cuáles deberían ser los contenidos?

+0

La razón es que agregué varios campos y quería generar el archivo automáticamente. –

+0

Ahh ... tu mejor opción es agregarlos en ti. Puede regenerar su andamio de modelo, pero de todos modos terminará escribiendo todos los nombres y nombres de columna. –

1

si aún no tiene el controlador para su modelo, puede generar el controlador, especificar sus puntos de entrada y creará las vistas para usted, sin embargo, si desea tener el archivo _form.html. * escrito con la vista predeterminada "fea" es probable que tenga que usar andamio para hacerlo.

He aquí una buena guide on generators and other rails command line options.

2

Se puede utilizar esta secuencia de comandos "andamio inversa":

https://github.com/ahe/reverse_scaffold

que va a generar el archivo requerido html.erbb derecho en la carpeta app/views.

Es bastante bien explicado en la página Léame.

Y, se actualiza para Rails 3.2

Cuestiones relacionadas