This can be a separate question, but it's associated with an early on question: Three Column Join in Rails with Active Scaffold. To summarize: Rails instantly searches for a 2 column join table, however it does not perform the same for any three column join table. I have attempted the suggestions in the earlier question, however it comes lower for this:

If you possess the models Project, Worker, Role with each having a habtm relationship towards the other two, rails is going to do each relationship individually although not in general.

class Employee < ActiveRecord::Base
    #has_many        :employees_projects_roles
    #has_many        :roles,     :through => :employees_projects_roles
    #has_many        :projects,  :through => :employees_projects_roles
     has_and_belongs_to_many :roles
     has_and_belongs_to_many :projects
end

repeated for Project, Role follows

class Role < ActiveRecord::Base
    #has_many :employees, :through => :employees_projects_roles
    #has_many :projects,  :through => :employees_projects_roles
    has_and_belongs_to_many :employees
    has_and_belongs_to_many :projects
end

My real question is this, since rails searches for employees_projects, projects_roles, and employees_roles although not employees_projects_roles it is possible to method to alias individuals names towards the real table title but still allow CRUD functionality within the database (MySQL or PostgreSQL)?

[Edit] Whoops. I have to stop responding to and questioning openly before I have had enough coffee. Transformed the said out portion from hmt to habtm. Incorporated said out part of code to mirror the different options I have attempted.

I am presuming you have something similar to this joining your models together:

  def self.up
    create_table :my_join_table, :id => false do |t|
      t.integer :employee_id
      t.integer :role_id
      t.integer :project_id
      t.timestamps
    end
  end

If that's the case you, must specify the title from the join table to make use of together with your habtm.

class Employee < ActiveRecord::Base
  has_and_belongs_to_many :roles, :join_table => "my_join_table"
  has_and_belongs_to_many :projects, :join_table => "my_join_table"
end

class Project < ActiveRecord::Base
  has_and_belongs_to_many :roles, :join_table => "my_join_table"
  has_and_belongs_to_many :employees, :join_table => "my_join_table"
end

class Role < ActiveRecord::Base
  has_and_belongs_to_many :employees, :join_table => "my_join_table"
  has_and_belongs_to_many :projects, :join_table => "my_join_table"
end