Rails 关系未定义列
Rails relationship undefined column
我有用户和缺席
class User
has_many :absences
end
class Absence
belongs_to :student, foreign_key: "student_id", class_name: "User"
end
我的 Absence 迁移有
t.integer :student_id, index: true, null: false
出于某种原因,我可以说
Absence.first.student
但是当我说
Absence.first.student.absences
我明白了
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column
absences.user_id does not exist) LINE 1: SELECT "absences".* FROM
"absences" WHERE "absences"."user_...
^ : SELECT "absences".* FROM "absences" WHERE "absences"."user_id" = LIMIT
显然,我没有正确设置某物,因为它正在寻找 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
我有用户和缺席
class User
has_many :absences
end
class Absence
belongs_to :student, foreign_key: "student_id", class_name: "User"
end
我的 Absence 迁移有
t.integer :student_id, index: true, null: false
出于某种原因,我可以说
Absence.first.student
但是当我说
Absence.first.student.absences
我明白了
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column absences.user_id does not exist) LINE 1: SELECT "absences".* FROM "absences" WHERE "absences"."user_... ^ : SELECT "absences".* FROM "absences" WHERE "absences"."user_id" = LIMIT
显然,我没有正确设置某物,因为它正在寻找 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