如何指定Rails模型关联的列以用作其foreign_key?默认情况下这是“id”,我想指定另一列。
示例:
question.rb
class Question < ActiveRecord::Base
has_many :answers
end
answer.rb
class Answer < ActiveRecord::Base
belongs_to :question
end
“问题”和“答案”表格都不使用 id 列。相反,他们都使用 stack_overflow_id 列作为他们的primary_keys(它们来自StackOverflow API)。
以下是应该能够运行的代码:
my_question = Question.find(stack_overflow_id: 55)
answers = my_question.answers
答案 0 :(得分:2)
这是两个功能:
foreign_key
上的belongs_to :question, foreign_key: "stack_overflow_id"
参数完成的。这样您就可以instance.association
并获得正确的记录。Model.where(stack_overflow_id: 55)
(对于多个记录)或使用find_by(stack_overflow_id: 55)
(对于具有该ID的第一个/唯一记录)来完成的。请查看这些命令的API,因为它们与find
的API。