Duda sobre modelos

Hola buenas, tenco una duda en como construir unos modelos, os expongo
un caso

class A < ActiveRecord::Base
has_many bs
end

class B < ActiveRecord::Base
has_many cs
belongs_to a
end

class C < ActiveRecord::Base
belongs_to b
end

con este planteamiento, como puedo hacer de una manera limpia esto?
a.bs.cs

como lo tengo hecho ahora és a.cs_in_bs donde

class A < ActiveRecord::Base
has_many bs
def cs_in_bs
cs = []
self.bs.each{|b| b.cs.each{|c| cs << c if (cs & [c]).size == 0}}
end
end

pero no me gusta nada de nada, alguna solucion?

Here we go …

 class A < ActiveRecord::Base
   has_many bs
   has_many cs, :through => :bs
 end

Francesc

On Jan 7, 2008, at 12:28 PM, Lleir Borras M. wrote:

end
class A < ActiveRecord::Base
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Collons… mira k es facil…

Gràcias!

On Jan 7, 2008, at 12:28 PM, Lleir Borras M. wrote:

end

class C < ActiveRecord::Base
belongs_to b
end

con este planteamiento, como puedo hacer de una manera limpia esto?
a.bs.cs

Dos posiblidades son:

a.bs.map(&:cs).flatten.uniq

o bien:

has_many :cs, :through => :bs

En este segundo caso has de recordar que solo puedes hacer consultas a
esa coleccion, los metodos para crear asociados no funcionan.

– fxn