添加对与 id 不同的选定列的引用
Add references to a chosen column different from id
是否可以添加对与 id
列不同的列的引用?
通常当创建两个模型(Model1 和 Model2)之间的关系时,使用 model1:references
和 model2:references
来创建关系模型会自动添加一个 model1_id
和model2_id
列(连同索引和外键引用)用于 model1/model2 关联:
rails generate Relationship model1:references model2:references
例如 Model1 = Teacher
和 Model2 = Pupil
。
假设 Model2 的记录(pupils' records)不时被一个 rake 任务更新:它的属性值(例如 name
和 school_credits
)会改变,保留 id
和ranking
(1 到 100)。
将老师与 pupil_id
联系起来没有多大意义。
每个老师都应该与 his/her 个学生的名字相关联,使用属性 pupil.name
而不是 pupil.id
.
作为外键引用
这可能吗?
我可以向命令 rails generate Relationship
添加什么选项,或者我应该添加什么 reference 才能得到这个结果?
是的,你可以。检查以下 link 中关于 foreign_key 和 primary_key 的部分。我不使用生成器,所以我无法评论将哪些选项传递给生成器,但您只需要确保要用作外键的列存在于您的 table 中并且您分配适当的 foreign_key 在模型文件中。
但是你为什么需要它?我不明白你可能有什么样的用例需要你保持 id 和排名相同。
是否可以添加对与 id
列不同的列的引用?
通常当创建两个模型(Model1 和 Model2)之间的关系时,使用 model1:references
和 model2:references
来创建关系模型会自动添加一个 model1_id
和model2_id
列(连同索引和外键引用)用于 model1/model2 关联:
rails generate Relationship model1:references model2:references
例如 Model1 = Teacher
和 Model2 = Pupil
。
假设 Model2 的记录(pupils' records)不时被一个 rake 任务更新:它的属性值(例如 name
和 school_credits
)会改变,保留 id
和ranking
(1 到 100)。
将老师与 pupil_id
联系起来没有多大意义。
每个老师都应该与 his/her 个学生的名字相关联,使用属性 pupil.name
而不是 pupil.id
.
这可能吗?
我可以向命令 rails generate Relationship
添加什么选项,或者我应该添加什么 reference 才能得到这个结果?
是的,你可以。检查以下 link 中关于 foreign_key 和 primary_key 的部分。我不使用生成器,所以我无法评论将哪些选项传递给生成器,但您只需要确保要用作外键的列存在于您的 table 中并且您分配适当的 foreign_key 在模型文件中。
但是你为什么需要它?我不明白你可能有什么样的用例需要你保持 id 和排名相同。