Consultando la base de datos

buenas lista
estoy haciendo pruebas con la base de datos, relaciones y otras cosas, y
tengo un problema y nose como resolverlo. he buscado respcto a esto pero
no veo ninguna referencia

en principio seria la gestion de alumnos de un colegio

para ello cree tres dos modelos cuya relación es 1 a 1 (un alumno tiene
1 expediente, un expediente pertenece a un alumno)

class CreateAlumnos < ActiveRecord::Migration
def self.up
create_table :alumnos do |t|
t.string :nombre
t.string :apellido
t.string :DNI
t.string :direccion
t.string :sexo
t.integer :telefono
t.string :mail_padres
t.integer :expediente_id
t.timestamps
end
end

Tengo un formulario que me pregunta si el alumno es nuevo o antiguo

cuando es alumno nuevo me da un formulario para rellenar los datos del
usuario
y cuando le doy a crear, que me va al metodo create, ya necesito tener
el id del expediente para guardarlo en el campo expediente_id pero como
hago esto???

como lo harian ustedes???
muchas gracias y espero sus comentarios

2008/7/23 Maite P. [email protected]:

como lo harian ustedes???
muchas gracias y espero sus comentarios

Asi rapido se me ocurre un callback en Alumno

Alumno << AR
after_create :inicializar
has_one :expediente

private
def inicializar
self.expediente = self.create_expediente
end
end

(asumo que Alumno acepte inicialmente expediente_id en NULL).

¡Falta Uno! - http://www.falta-uno.com.ar/
Ricardo M.

La solución de Ricardo es buena, pero va a ser mucho más simple tener
los datos en una única tabla, en vez de tener dos tablas 1:1.

s2

si es cierto que no tiene sentido la relacion 1:1 pero es por probar y
por hacer cositas.

la cosa es que me funciona, pero tengo una duda mi index me muestra dos
botones que al tocarlos me aparece un formulario
<% form_tag :action => ‘Nuevo’ do %>

<%= submit_to_remote 'submit', 'Nuevo alumno',:url => {:controller => 'alumnos', :action => 'new'}, :update => 'aqui', :success => "$('btm2').visualEffect('Fade')"%>
<%= submit_to_remote 'submit', 'Antiguo alumno',:url => {:controller => 'alumnos',:action => 'new'}, :update => 'aqui', :success => "$('btm1').visualEffect('Fade')"%>

la cosa es que cuando voy a ver el código html que genera no veo el
formulario, esta la etiqueta aqui que es la que se actualiza pero no
estan las etiquetas html del formulario.

y si uso las validaciones me da error.
supongo que ambas cosas sean porque las llamadas esa son con ajax,
pero es asi como debe funcionar, o estoy metiendo la pata?
si quiero validar lso formularios como lo hago???

muchas gracias a todos

2008/7/24 Fernando C. [email protected]:

La solución de Ricardo es buena, pero va a ser mucho más simple tener
los datos en una única tabla, en vez de tener dos tablas 1:1.

Ya saliendo de Rails, depende si es bueno o no.

Por ejemplo, si vos tenes 1 sola tabla y te la pasas haciendo select *
from user para solo mostrar 3 datos, tenes un uso de BW alto al cuete,
y en ese caso si solo mostrar el legajo en 1 solo lugar muy raravez,
conviene separarlo y tener 1 query mas en un caso particular que una
query “pesada” (en Mb de red).

¡Falta Uno! - http://www.falta-uno.com.ar/
Ricardo M.