0

Let's say I have a Company that has many Employees and each Employee can have many Companies.

Basically I will have :

class Employee < ActiveRecord::Base
  has_and_belongs_to_many :companies
end

and

class Company < ActiveRecord::Base
  has_and_belongs_to_many :employees
end

But then I'm confused about how I could get things like:

  • All the employees of a company with the name starting by "John"
  • All the employees of a company order by name first, email second.

Is there some magic I don't know about? The example is just here for the demo, feel free to make assumptions or change it if it helps you explain better.

JJD
  • 50,076
  • 60
  • 203
  • 339
marcgg
  • 65,020
  • 52
  • 178
  • 231

1 Answers1

4

For getting all the employees starting with "John", you can do (of course there are many other ways to do it, but anyway):

some_company.employees.find(:all, :conditions => "name LIKE 'John%'")

For ordering of the employees it's even prettier:

class Company < ActiveRecord::Base
  has_and_belongs_to_many :employees, :order => "name, email"
end

There are a whole lot more you can do with ActiveRecord. I suggest that you try reading up on http://guides.rubyonrails.org/ or watch http://railscasts.com/ to learn more about the beauty of RoR =)

Hope it helps!

Staelen
  • 7,691
  • 5
  • 34
  • 30