Xavier,
Tienes razon al decir que es mas logico modelar Subasta ----> Lote ---->
Especificacion, me parece una muy buena idea, el problema es que me
preocupa cambiar el modelo en base de datos a estas alturas ya que
tengo avanzada esa parte en el proyecto y no quisiera perjudicar la
entrega que es en un par de semanas.
El problema que me surge de cualquiera de los dos modelos ( El que tu
propones y el que tengo actualmente) es un buscar, te muestro como
resolvi el error que me mostraba anteriormente pero que aun con esto no
logro obtener la consulta que quiero.
Coloque esto en los modelos y ya puedo realizar esta consulta:
subastas=Especificacion.find(id_especificacion).subatas (Esto me
devuelve todas las subastas relacionadas a ese ID)
A los modelos les agregue esto:
class Lote < ActiveRecord::Base
has_and_belongs_to_many :especificacions, :join_table =>
‘especificacions_lotes_subastas’
has_and_belongs_to_many :subastas, :join_table =>
‘especificacions_lotes_subastas’
end
class Subasta < ActiveRecord::Base
has_and_belongs_to_many :lotes, :join_table =>
‘especificacions_lotes_subastas’
has_and_belongs_to_many :especificacions, :join_table =>
‘especificacions_lotes_subastas’
end
class Especificacion < ActiveRecord::Base
has_and_belongs_to_many :lotes, :join_table =>
‘especificacions_lotes_subastas’
has_and_belongs_to_many :subastas, :join_table =>
‘especificacions_lotes_subastas’
end
Mi problema ahora seria el siguiente si yo adicionalmente tengo N
proveedores relacionados a N especificaciones, me gustaria a traves de
un ID proveedor poder obtener a que subasta se relacionan
Es decir quisiera hacer esto
@subastas=Proveedor.find(id).especificacions.subatas
pero me indica que .subastas no es un metodo definido
Como se puede hacer una consulta para un arreglo de valores, ya que si
solo hago esto:
@subastas=Proveedor.find(id).especificacions (Arreglo de
especificaciones que cumple con ese id)
pero despues quisiera buscar cuales subastas estan relacionadas a ese
arreglo de especificaciones.
Se que mi caso se ve complicado y definitivamente he realizado
demasiadas preguntas, si me pudieras ayudar estaria muy agradecido ya
que esto es un proyecto de grado y estoy culminando la carrera.
Gracias de antemano y saludos,
Maximiliano M.