Hello, First I''m using Rails 3.1 from the 3-1-stable branch updated an hour ago. I''m developing an application where I have 3 essential models User, Company and Job, Here''s the relevant part of the models: class User < ActiveRecord::Base has_many :companies_users, class_name: "CompaniesUsers" has_many :companies, :through => :companies_users, :source => :company end class Company < ActiveRecord::Base has_many :companies_users, class_name: "CompaniesUsers" has_many :employees, :through => :companies_users, :source => :user has_many :jobs, :dependent => :destroy end class Job < ActiveRecord::Base belongs_to :company, :counter_cache => true end class CompaniesUsers < ActiveRecord::Base belongs_to :company belongs_to :user end The code works just fine, but I have been wondering if it''s possible to: I want to link a job with an employer, so think of this scenario: A user John who''s an employee at Example, he posted the job Rails Developer, so I want to access @job.employer and it should get me back the user John, in other words: @user = User.find_by_name(''john'') @job = Job.find(1) @job.employer == @user #=> true So I thought of two possible solutions First solution ========= class Job has_one :employer, :through => :employers end class User has_many :jobs, :through => :employers end class Employer belongs_to :job belongs_to :user end Second solution ============ class Job has_one :employer, :class_name => "User" end class User belongs_to :job end Which route should I go? Is my code right ? I have another question, how to get rid of the class_name => "CompaniesUsers" option passed to has_many, should the class be Singular or Plural ? Should I rename it to something like Employees ? P.S: I posted the same question to Stackoverflow -- Wael Nasreddine: Design & Coding at TechnoGate contact | wael.nasreddine-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org - +33.6.31.17.41.10 | skype - eMxyzptlk