2017-08-15 44 views
0

所以我有两个表,一个Customers表和一个Companies表。我还创建了一个空的Employees表,我想用它作为连接表。Rails填充现有的加入表

这是我有关联:(我希望客户与他们各自的公司关联)

class Company < ApplicationRecord 
    has_many :employees 
    has_many :customers, :through => :employees 
end 

class Customer < ApplicationRecord 
    belongs_to :employees 
end 

class Employee < ApplicationRecord 
    belongs_to :customer 
    belongs_to :company 
end 

哪里会做到这一点的最好方法是什么?在我的客户#控制器中的新方法?我读到我需要使用< <,但我不知道如何解决这个问题。

+0

做了'customer'属于或有许多'employees'?员工属于或有一个'客户'吗?现在你有'belongs_to'在两个方向 –

回答

1

您需要使用反向关联在这里的概念: 类客户的has_many:公司:通过=>:员工

+0

我是否需要通过迁移添加customer_id列和company_id列,还是自动执行? –

+1

您将始终需要在连接表中添加列(员工在您的案例中)。迁移总是需要支持ActiveRecord分支。 –

+0

非常感谢。目前学习Rails,并试图做一些更复杂的数据库关系。你帮了很多忙。 –

0

你可以只尝试委托对客户的公司呼吁其员工:

customer.rb

delegate :company, to: :employee 

现在,每当你问一个客户的公司,它会要求其员工来处理它。