select through proxy objects without joins

Company has many Departments, Department has many Employees.

Is there nice easy way to select all Employees of certain Company? I mean using just proxy objects, without joins.

In your model:

app/models/company.rb

has_many :departments has_many :employees, :through => :departments

And then reference via an existing company object:

@company.employees

Thanks, Ryan, you hacked my case :slight_smile: In fact, I have four objects, also Holding has many Companies. Can I in the same way select all employees of Holding? I read manual about join models in Rails and did not find words about joining through two or more entities.

It's not wise to go through four levels... but if you must. Define a method in your holding model:

def employees    companies.map { |c| c.employees } end

Yes, I used such code as my first solution (just don't forget to call .flatten) and now looking for something nicer. Thank you anyway, Ryan.