如何在不同的列上创建关联

时间:2018-01-16 03:46:16

标签: ruby-on-rails activerecord

我有一个用户模型:

users
-id
-external_id

sales
-id
-external_id

所以我的关联模型看起来像是:

class Sale < ApplicationRecord
  belongs_to :user
end

class User < ApplicationRecord
  has_many :sales
end

如何通过列&#39; external_id&#39;链接关联。 ?

2 个答案:

答案 0 :(得分:1)

你可以在这里使用foreign_key。

class Sale < ApplicationRecord
  belongs_to :user, foreign_key: :external_id
end

class User < ApplicationRecord
  has_many :sales, foreign_key: :external_id
end

答案 1 :(得分:0)

我不确定您是否希望列名称为external_id,或者您是否想知道如何获取外部ID(外键)。我将假设后者,因为这是通常建立关系数据库的方式。 制作模型时,您可以这样做,例如:

rails g model user email:string password:string

rails g model sale user:references amount:decimal

More here

这将创建如下所示的表:

Users
email: string
password: string

Sales
user_id: integer
amount: decimal

其中user_id是与该销售相关联的用户的外键,因为用户具有许多销售并且销售属于用户。

请记住:1的id在许多人身上。