向不同于id的选定列添加引用



是否可以将引用添加到与id列不同的列?

通常在创建两个模型(Model1和Model2)之间的关系时,使用model1:referencesmodel2:references创建relationship模型会自动添加model1_idmodel2_id列(以及索引和外键引用),以便在Model1/Model2关联中使用:

rails generate Relationship model1:references model2:references

Model1 = TeacherModel2 = Pupil为例。
假设Model2的记录(学生的记录)时不时地用rake任务更新:它的属性值(例如nameschool_credits)会改变,保留idranking(1到100)。

把老师和pupil_id联系在一起是没有多大意义的。
每个老师应该使用pupil.name属性而不是pupil.id作为外键引用与他/她的学生的名字相关联。

这可能吗?
我可以向命令rails generate Relationship添加什么选项,或者我应该添加什么引用来获得此结果?

可以。查看以下链接中的foreign_key和primary_key部分。我不使用generator,所以我不能评论要传递给generator的选项,但是您只需要确保要用作外键的列存在于表中,并且您在模型文件中分配了适当的foreign_key。

但是你为什么需要它呢?我不明白你可能会有什么样的用例需要你保持id和排名相同。

相关内容

  • 没有找到相关文章

最新更新