Buenas!. Tengo una base de datos con una tabla que tiene su id y aparte
un numCandidato. No son iguales ya que el id sigue incrementandose
aunque se borren algunos candidatos. Y numCandidato no se
autoincrementa, sino que hay que introducirlo.
Mi intención es que cuando salga el campo de numCandidato ya tenga
puesto el valor siguiente al del último registro de la tabla. Es decir
si el último candidato es el 2300, que aparezca 2301 en el campo.
He leido por ahà que se puede hacer MiTabla.find_by_id(int). Pero
necesitarÃa saber el id del último candidato. Alguien sabe como hacerlo?
Un saludo.
Hola
He leido por ahà que se puede hacer MiTabla.find_by_id(int). Pero
necesitarÃa saber el id del último candidato. Alguien sabe como hacerlo?
puedes hacer Tabla.find(:first,:order=>‘ID DESC’)
asà ordenas la tabla por el campo que quieras (ID en este caso) de forma
descendente y te quedas con el primer registro.
Saludos,
javier ramÃrez
Hola gracias por las respuestas. En los dos casos me da error del objeto
esperado = nil. De todas formas es posible que este accediendo mal a la
tabla.
Estoy utilizando esto en un view, por lo que para acceder a la tabla,
pongo en el controller @candidatos = Candidato.find_all, asà puedo
acceder a ella mediante @candidatos. Esta bien no?.
Un saludo
O también:
Tabla.maximum(:numCandidato).next
Usa mejor Candidato.find :all, que find_all esta “deprecated”. Con ese
método, obtienes un array, no un objeto Candidato
De todas formas no entiendo para qué quieres buscar todos los
candidatos. Si
sólo te hace falta un número para el nuevo candidato, por qué no pones
en el
controlador: @numero = Candidato.maximum(numCandidato).next y en el view
accedes a @numero?
Si no es eso, intenta ser un poco más preciso a ver si te podemos ayudar
Buenas! Pues mil gracias por la ayuda. He tardado un poco en dar con la
parte del controller donde tenÃa que ponerlo. Pero al final lo he
conseguido.
Creo que me comprare en breve algún libro, porque me está gustando esto
de RoR.
Un saludo.