class Payment < ApplicationRecord
归属地:收款人,类名:“用户”
结束
类用户
结束
答案 0 :(得分:1)
这里,payments
表有一个列 payee_id
,它只是表 users
的外键
所以你的关联是以这样的方式设置的
答案 1 :(得分:0)
通过名为 Payment
的便捷方法,User
属于 payee
。
标准的 Rails ORM 关联看起来像这样
class Payment < ApplicationRecord
belongs_to :user
end
在这种情况下,关联将假定 user
指的是 User
模型和 users
表,并且 payments
表有一个名为 {{1} } 促进这种关系。
您的模型设置为使用 user_id
可能是因为 payee
不像 payment.user
} 也一样)。
要建立这种关系,它看起来像这样:
payment.payee
现在关联将假定 payer
指的是 class Payment < ApplicationRecord
belongs_to :payee
end
模型和 payee
表,并且 Payee
表有一个名为 payees
的列促进这种关系。
但是,在您的情况下,“收款人”是 payments
(而不是 payee_id
),因此我们需要将这种常规偏差告知关联,从而导致:
User
现在关联已被告知 Payee
指的是 class Payment < ApplicationRecord
belongs_to :payee, class_name: 'User'
end
模型和 payee
以及名为 User
的表(基于 User
)但是它将使用基于关联名称 (users
) 的列名加入到此表中,因此它仍将使用名为 User.table_name
的列来促进这种关系。