轨道关系未定义列



我有用户和缺席

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

相关内容

  • 没有找到相关文章

最新更新