Personalizar columnas con AJAXScaffold plugin


#1

Hola a todos. Desde que descrubrí este plugin he estado investigando
como funciona y como usarlo. He descubierto por ejemplo como crear
columnas dinámicas y personalizadas que no estén definidas en la DB:

http://blog.caronsoftware.com/articles/2006/09/02/getting-started-with-the-ajax-scaffold-plugin

pero lo que no he encontrado es como ocultar columnas de la DB el la
vista haciendo uso del plugin y no creando el scaffold para una vista
en particular y modificándola (no se si me explico). Como ejemplo:

  • En la DB tenemos la típica tabla: Personas -> (id, nombre, dni,
    dirección, etc)
  • Después de montar el andamiaje (haciendo uso del plugin) nos
    mostrara una lista con todos los campos de la tabla personas.
  • Queremos que en la vista de la tabla solo aparezca nombre y dni (por
    ejemplo).

Crear todo el andamiaje y luego personalizarlo es una opción que
prefiero no usar por ahora, por lo que agradecería cualquier ayuda.


#2

Hola,

Pues te recomiendo antes de que continues con AjaxScaffold, evalues Dry
Scaffold, que está en la versión 1.0, Después de evaluar los tres
plugins mas importantes (dry scaffold, ajax scaffold y streamlined),
definitivamente me quedo con dry, aunque en los tres estan haciendo
cosas interesantes, por lo pronto solo en dry se puede trabajar
relaciones uno a muchos, y se puede hacer lo que mencionas de una manera
sencilla,

Benjamin C. Salamandra


#3

Se me olvidaba comentar que Dry Scaffold no trabaja con Ajax, pero se
puede realizar una aplicación muy amigable con la sola posibilidad de
crear listas en listas (uno a muchos) y con formulario de edición en
cada lista.


#4

AjaxScaffold utiliza - por defecto - content_columns para decidir qué
columnas muestra. Las columnas mostradas se pueden personalizar
definiendo @scaffold_columns.

Ten en cuenta que @scaffold_columns se define en el modelo si utilizas
la versión generator o en el controller si se utiliza la
versiónplugin.

Salu2,

Javi

2007/1/14, Javier G. removed_email_address@domain.invalid:


#5
  • Hola Javier, investigando ya había visto @scaffold_columns, mi fallo
    era que usando el plugin definía esta variable en el modelo. Gracias
    por decirme que era en el controlador. Con todo, el código para el que
    le pueda ayudar (aunque sea simple) en el controller ha quedado
    así:
    class PersonaController < ApplicationController
    ajax_scaffold :persona

    def scaffold_columns
    @scaffold_columns = [
    AjaxScaffold::ScaffoldColumn.new(Persona, { :name => “nombre” }),
    AjaxScaffold::ScaffoldColumn.new(Persona, { :name => “dni” }),
    AjaxScaffold::ScaffoldColumn.new(Persona, { :name => “direccion”
    }),
    ]
    end
    end

*Teniendo en la DB mas campos en la tabla persona (telefono, …)

  • Benjamín, la verdad es que (supongo como muchos) llevo poco tiempo
    buscando e indagando en los muchos plugins que existen para rails, por
    lo que tu sugerencia me ha venido de perlas, no lo conocía y por lo
    que me ha dado tiempo a ver tiene muy buena pinta, gracias.

2007/1/16, Benjamín Cárdenas Salamandra removed_email_address@domain.invalid: