miércoles, junio 17, 2009

active_scaffold

Recuerdan el golpe de efecto que tenía Rails en sus orígenes?

Era el scaffold dinámico: una simple orden que generaba automáticamente el ABM de una tabla.

Incluso por aquella época recuerdo también un plugin llamado ajax_scaffold que hacia lo mismo con mas elegancia.

En Rails 2 se extraña esa funcionalidad que... es cierto, mal acostumbraba a los programadores.

Buscando no recuerdo que cosa, descubro esta pequeña joya sobreviviente de Rails 1.2: active_scaffold

En términos generales, y a modo de machete:

rails prueba2

cd prueba2/

script/plugin -v install git://github.com/activescaffold/active_scaffold.git

script/generate model user name:string age:integer

rake db:migrate

script/generate controller user

vim app/controllers/user_controller.rb

----------------------------------------------

Al principio, inmediatamente después del class UserController ... agregar

layout "user"

active_scaffold :user

----------------------------------------------


vim app/views/layouts/user.html.erb

----------------------------------------------

Agregar en el head:



<%= javascript_include_tag :defaults %>
<%= active_scaffold_includes %>
-------------------------------------------------


script/server -p 3002 -d

firefox localhost:3002/user

Listo!

Se le puede agregar tablas, al estilo sucio (sobre el motor), o mediante migraciones. Y al igual que el viejo scaffold dinamico, el cambio es inmediato: solo hay que refrescar el browser.

script/generate migration add_nick_and_password_to_user user:string password:string

rake db:migrate

Personalizar: volvemos a abrir el UserController y lo cambiamos por estas líneas que se explican solas:

layout "user"

# active_scaffold :user

active_scaffold :user do |config|

config.label = "Usuarios"

config.columns = [:name, :nick, :created_at]

# list.columns.exclude :password

list.sorting = {:name => 'ASC'}

columns[:name].label = "Nombre #"

#ejemplo util
#columns[:phone].description = "(Format: ###-###-####)"


end




Aquí hay otro vinculo donde figura como personalizarlo:

http://blog.akilles.org/2008/04/17/ruby-on-rails-experimenting-with-activescaffold/#basic


Blogger apesta bastante cuando muestra código fuente. Aquí está el proyecto listo para copiar / pegar los ejemplos: http://www.bunker.org.ar/incubadora/active_scaffold

No hay comentarios.: