Foros del Web » Programando para Internet » Ruby »

duda con asociaciones

Estas en el tema de duda con asociaciones en el foro de Ruby en Foros del Web. Me encuentro trabajando con Asociaciones, el sistema que me encuentro desarrollando tiene 2 finalidades: 1- Crud del personal de una empresa en la cual existen ...
  #1 (permalink)  
Antiguo 02/05/2013, 08:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
duda con asociaciones

Me encuentro trabajando con Asociaciones, el sistema que me encuentro desarrollando tiene 2 finalidades:
1- Crud del personal de una empresa en la cual existen 3 tipos de personas (Funcionarios,Contratistas y estudiantes).
2- los estudiantes tienen turnos en los cuales realizan actividades y se guardan en una bitacora.

hasta el momento tengo los crud de tipo de personas y el de personas, y cree las asociaciones entre tipo y persona

app/models/persona.rb

class Tipo < ActiveRecord::Base

attr_accessible :descripcion, :nombre

has_many :personas
end

app/models/tipo.rb

class Persona < ActiveRecord::Base
attr_accessible :apellidos, :correoinstitucional, :correopersonal, :direccion, :extension, :nombres, :observaciones, :telefonocelular, :telefonofijo, :tipo_id

belongs_to:tipo
end

en el formulario de ingreso de una persona me aparece sin problemas un selec para ingresar el tipo de persona.

ahora el problema que tengo es como asocio la nueva tabla (Bitacora) ya que a la hora que un estudiante vaya a registar su turno le debe de aparecer un select donde aparezcan todos las personas pero tipo estudiante.



tengo 3 tablas en base de datos

tipo
id
nombre
descripcion
created_at
updated_at

Persona
id
tipo_id
nombres
apellidos
telefonoceluar
created_at
updated_at

Bitacora
id
inicio_turno
fin_turno
descripcion_turno
persona_id
created_at
updated_at
  #2 (permalink)  
Antiguo 02/05/2013, 14:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: duda con asociaciones

he avanzado un poco , les voy a contar y si estoy mal me corrigen.

cree el modelo, vistas,controlador de bitacora: rails g scaffold bitacora persona_id:integer inicioturno:datetime finturno:datetime descripcionturno:text

realice las siguientes asociaciones

en app\models\bitacora.rb
class Bitacora < ActiveRecord::Base
attr_accessible :descripcionturno, :finturno, :inicioturno, :persona_id

belongs_to:persona
end

en app\models\persona.rb

class Persona < ActiveRecord::Base

attr_accessible :apellidos, :correoinstitucional, :correopersonal, :direccion, :extension, :nombres, :observaciones, :telefonocelular, :telefonofijo, :tipo_id

belongs_to:tipo
has_many:bitacora

def name
"#{self.nombres} #{self.apellidos}"
end
end


para que en el select del formulario ingresar una nueva bitacora agrege en el controlador app\controllers\bitacoras_controller.rb para que liste todas los estudiantes

def new
@bitacora = Bitacora.new
@personas = Persona.where(['tipo_id=?', 3])

........

en la vista asi tengo el select <%= f.collection_select(:persona_id, @personas, :id, :name, :include_blank => "Seleeccione") %>

insertar funciona sin problemas , el problema lo tengo en modificar este es el error que obtengo

undefined method `map' for nil:NilClass
  #3 (permalink)  
Antiguo 03/05/2013, 18:40
 
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 33
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: duda con asociaciones

La definición de @personas que tienes únicamente es una relación, para llenar la colección tienes que ejecutar la consulta:

@personas = Persona.where(['tipo_id=?',3]).all

Etiquetas: asociación, rubyonrails
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:59.