我有用户和缺席
class User
has_many :absences
end
class Absence
belongs_to :student, foreign_key: "student_id", class_name: "User"
end
和我的缺席迁移有
t.integer :student_id, index: true, null: false
出于某种原因,我可以说
Absence.first.student
但是当我说
Absence.first.student.absences
我得到
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column absences.user_id不存在(第 1 行:选择"缺席"。 "缺席"在哪里"缺席"。用户_。。。 ^ : 选择"缺席".*从"缺席"中,其中"缺席"。user_id" = $1 限额 $2
显然,我没有正确设置 sth,因为它正在寻找user_id而不是student_id但我不知道为什么会发生这种情况......感谢您的任何建议!
您收到此错误的原因是因为您没有has_many关系中指定自定义外键。以下代码将解决您的问题。
class User
has_many :absences, foreign_key: "student_id"
end
class Absence
belongs_to :student, foreign_key: "student_id", class_name: "User"
end