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:
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.
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,
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.
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.
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
*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.