Deep has_many through


#1

Hey everyone,

I tried searching for this and asking in #rubyonrails but got no answer.

Given:
class Aye; has_many :bee; end
class Bee; has_many :cees; end
class Cee; has_many :dees end

Is this possible?:
aye.dees

I know how that with has_many through you can get aye.cees but can it
go further than that?

While searching I came accross
http://wiki.rubyonrails.org/rails/pages/ThroughAssociations that
talked about it (but this was a wish):
class Manufacturer

using an array specifies the order in which the relationships occur.

has_many :review_comments, :through => [:products, :reviews]

For that matter, we should be able to string together as many

relationships as we like.

For example, for intergalactic commerce, we might want to find out

which moons are associated with a given manufacturer.
has_many :moons, :through => [:distributors, :space_stations,
:planets, :moons]
end

Thanks,
Ramon T.


#2

Hi,

you provide your own answer :slight_smile:

class Aye
has_many :bees # plural !
has_many :cees, :through => :bees # this specifies which class is
intermediary
end
class Bee
has_many :cees
end
class Cee
has_many :dees
end

And then you can use Aye.dees.

Elise