Ruby Forum Rails-ES > busqueda en el has_and_belongs_to_many

Posted by Maite Piedra (maite)
on 13.08.2008 20:20
hola lista
tengo una relacion has_and belongs to many entre empresas y mercados en
la tabla empresas_mercados tengo empresas_id y mercados_id

donde mercados_id se repite es decir
 35 -- 1
 36 -- 1
 40 -- 2
  5 -- 2

estoy haciendo esto

@mercados << empre.mercados

esto me crea un vector que despues yo recorro y quito los indices
repetidos, pero no hay una forma mas optima en el
has_and_belongs_to_many para quitar los repetidos

es que si el vector se me hace muy grande es un fastidio ya que tarda
mas.

gracias
Posted by Jaime Iniesta (Guest)
on 14.08.2008 13:49
(Received via mailing list)
El 13 de agosto de 2008 20:20, Maite Piedra <
ruby-forum-incoming@andreas-s.net> escribió:

> hola lista
> tengo una relacion has_and belongs to many entre empresas y mercados en
> la tabla empresas_mercados tengo empresas_id y mercados_id
>

hola Maite, una observación, supongo que estarás empleando el singular 
en la
tabla intermedia. Esto es, debe ser una tabla "empresas_mercados" con 
campos
"empresa_id" y "mercado_id".


>
> esto me crea un vector que despues yo recorro y quito los indices
> repetidos, pero no hay una forma mas optima en el
> has_and_belongs_to_many para quitar los repetidos
>

No entiendo el problema... si tienes la tabla intermedia como te he 
dicho
antes, y en los modelos:

empresa has_and_belongs_to_many :mercados

y

mercado has_and_belongs_to_many :empresas

Ya deberías poder hacer @empresa.mercados para coger todos los mercados 
de
una empresa, @mercado.empresas para coger todas las empresas de un
determinado mercado...

Quizá lo que quieres es coger todos los mercados en global? Pues
Mercado.find(:all), no?


>
> es que si el vector se me hace muy grande es un fastidio ya que tarda
> mas.
>

Lo dicho, que no te sigo :)