Foros del Web » Programando para Internet » Ruby »

Problemas con migración y arranque

Estas en el tema de Problemas con migración y arranque en el foro de Ruby en Foros del Web. Amigos, a ver si alguien es tan amable de explicarme cual seria el problema por favor? Inicie un proyecto nuevo (soy novato en el tema), ...
  #1 (permalink)  
Antiguo 22/07/2008, 08:44
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Problemas con migración y arranque

Amigos, a ver si alguien es tan amable de explicarme cual seria el
problema por favor?
Inicie un proyecto nuevo (soy novato en el tema), realice de una base
existente el rake db:schema:dump para obtener las tablas.
Luego hice ruby script/generate migration crear_tabla_% donde %=nombre
de una de las tablas que obtengo del dump en schema.rb.
Esto me crea un archivo tipo .rb con la tabla, dentro del metodo self.up
que esta vacio, le pongo el create de la tabla como dice shema.rb
creo las clases con script/generate scaffold [modelo en singular y con
la primer letra en Mayuscula]
Luego ejecuto el rake db:migrate.
Hasta aca, todo perfecto, pero cuando ingreso en la aplicacion, digamos
http://localhost:3000/[modelo] me aparece la pantalla clasica para poder
hacer el new record, etc, pero no me aparece ningun campo!!!!.
Entro a la base, ingreso valores a la tabla, reseteo el servidor y no,
no ve la estructura ni los datos pero si reconoce el objeto.

Que me estoy olvidando?.

Muchas gracias!!!

JJC
  #2 (permalink)  
Antiguo 22/07/2008, 11:21
Avatar de Yaraher  
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años, 8 meses
Puntos: 9
Respuesta: Problemas con migración y arranque

La instrucción rake db:scheme:dump, como bien dices, creará un archivo schema.rb. Ya no es necesario que crees migraciones repitiendo el nombre. Si ahora vas a crear otra BD y quieres usar ese esquema, sólo necesitas utilizar:

rake db:schema:load

Sobre lo otro, ¿has revisado si el codigo de las vistas? Lee tambien el log para revisar problemas y trata de iniciar una sesión de consola (script/console) para ver que mensajes te dan.
  #3 (permalink)  
Antiguo 22/07/2008, 11:57
 
Fecha de Ingreso: junio-2008
Mensajes: 9
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problemas con migración y arranque

Si, entiendo lo que me decis, realice otro prueba siguiendo tu consejo y obtengo el mismo resultado, hacia cosas de mas.
Con respecto a las vistas, las mismas obviamente no tienen los campos que mapearian contra la tabla. Si hago el generate scaffold y defino ahi mismo los campos, si se actualiza la vista, pero de esta forma no tengo ninguna ventaja ya que tendria que hacer el trabajo repetitivo y tedioso a mano. No hay algun mecanismo que me genere las vistas con respecto a los valores que estan en el schema.rb que me genero la migracion?.

Muchas gracias.
  #4 (permalink)  
Antiguo 22/07/2008, 18:47
Avatar de Yaraher  
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años, 8 meses
Puntos: 9
Respuesta: Problemas con migración y arranque

El problema es la concepción que tienes del scaffold: no es nada más que un código básico, estructural y que no se debería utilizar para el resultado final (salvo para tareas de mantenimiento y similares). Incluso, en Rails Pre 1.2, tenías el comando "scaffold :model" que colocabas en tu controlador y te generaba las vistas y demás automáticamente, pero en la versión 1.2 se dejó de utilizar ya que era una práctica mal usada.

Por lo que entiendo, tu ya tienes las tablas creadas y estas haciendo una aplicación que interactue con ellas. Una opción es, en tu vista, colocar un código como:

Código:
<table>
  <tr>
  <% for column in Model.content_columns %>
    <th><%= column.human_name %></th>
  <% end %>
  </tr>
  
<% for model in @models %>
  <tr>
  <% for column in Model.content_columns %>
    <td><%=h model.send(column.name) %></td>
  <% end %>
  </tr>
<% end %>
</table>
Lo que (no lo he probado) te creará una tabla con los campos por cada columna que tengas. Es una base, claro está, que podrías utilizar con otros fines.

Sin embargo, tal vez podrías utilizar algún plugin. Existen muchas formas de lograrlo, realmente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.