[Ror-es] ayuda con los helpers
Borja Martín
borjam at dagi3d.net
Sat Sep 1 13:59:05 GMT 2007
Carlo Salas escribió:
> hola a todos
> tengo un problema con mi aplicacion
>
> ocupo crear un helper con el cual en un campo select pueda introducir
> datos que se van a guardar en la tabal.
> por ejemplo la vista que trabajo se llama citas atraves de un select en
> esta vista yo veo a los pacientes que estan en la tabla Paciente pero
> ocupo que si el paciente es nuevo o no aparece entre los campos se le
> pueda asignar la cita sin tener que llenar todos los campos de la tabla
> paciente solo con agregarlo en el select de pacientes. este es el select
> del _form
>
> <p><label for="cita_pacientes_id">Pacientes</label><br/>
> <%= select("post", "pacientes_id", Paciente.find(:all).collect {|p| [
> p.primer_nombre + " " + p.segundo_nombre + " " + p.primer_apellido + " "
> + p.segundo_apellido, p.id ] }, { :include_blank => false }) %></p>
>
> como podria crear eso
>
La verdad es que no entendí muy bien cual era la pregunta y cual el
problema que tenías, pero te aconsejaría que no hicieras las consultas
dentro de la vista ya que ese no es no es su sitio, además de que no
podrías reutilizar el listado obtenido si lo necesitaras sin tener que
hacer la misma consulta otra vez. Digamos que a las vistas hay que
tratarlas como si fueran lo más 'tontas' posibles. Y también te
aconsejaría que te hicieras un método auxiliar que te devolviera el
nombre completo ya que seguro que en más de un sitio querrás utilizarlo
y así no tener que estar concatenando las distintas partes todo el rato.
La cosa se quedaría más o menos así:
class Paciente
def nombre_completo
self.primer_nombre + " " + self.segundo_nombre + " " +
self.primer_apellido + self.segundo_apellido
end
end
class CitasController < ApplicationController
def new
# si fuese necesario, esto también te lo podrías llevar a otro
método para reutilizarlo en más sitios
@pacientes = Paciente.find(:all).collect { |paciente|
[paciente.nombre_completo, paciente.id]}
..
end
end
formulario:
<%= select :paciente, :id, @pacientes %>
Saludos
--
/**
* dagi3d v4 | http://dagi3d.net
*/
More information about the Ror-es
mailing list