是否可以将引用添加到与id
列不同的列?
通常在创建两个模型(Model1和Model2)之间的关系时,使用model1:references
和model2:references
创建relationship模型会自动添加model1_id
和model2_id
列(以及索引和外键引用),以便在Model1/Model2关联中使用:
rails generate Relationship model1:references model2:references
以Model1 = Teacher
和Model2 = Pupil
为例。
假设Model2的记录(学生的记录)时不时地用rake任务更新:它的属性值(例如name
和school_credits
)会改变,保留id
和ranking
(1到100)。
把老师和pupil_id
联系在一起是没有多大意义的。
每个老师应该使用pupil.name
属性而不是pupil.id
作为外键引用与他/她的学生的名字相关联。
这可能吗?
我可以向命令rails generate Relationship
添加什么选项,或者我应该添加什么引用来获得此结果?
可以。查看以下链接中的foreign_key和primary_key部分。我不使用generator,所以我不能评论要传递给generator的选项,但是您只需要确保要用作外键的列存在于表中,并且您在模型文件中分配了适当的foreign_key。
但是你为什么需要它呢?我不明白你可能会有什么样的用例需要你保持id和排名相同。