我的rails应用中有两个模型:report.rb
和user.rb
报告表
id
assigned_user_id
amount
costs
etc.
用户表
id
assigned_user_id
email
prename
etc.
我知道如果我使用标准Rails逻辑(在报表上有user_id等),我可以将这两个模型与belongs_to和has_many联系起来。
但由于我在报告表中没有user_id
,我想通过assigned_user_id
连接两个表,但我现在不知道如何在我的模型中指定我的关联。
答案 0 :(得分:1)
要为1对多关联设置别名,请使用foreign_key
和class_name
选项。
class User < ApplicationRecord
# without foreign_key Rails would look for the inverse
# in reports.user_id
has_many :reports, foreign_key: :assigned_user_id
end
class Report < ApplicationRecord
# class_name is needed since the class name cannot be deduced by
# the name of the association
belongs_to :assigned_user, class_name: 'User'
end