Rails - 为每个新关联设置ID为1?

问题描述 投票:0回答:1

这是一个更理论化的问题,我一直在考虑这种“问题”更长一段时间,并且找不到任何真正的答案。

让我们从这个简单的设置开始:

project.rb

has_many :tasks

task.rb

belongs_to :project

现在每个项目都可以完成任务。

想象一个完全新鲜的DB:

如果我之后为该项目创建一个新项目(1)和5个任务,任务1-5将与项目1相关联,对吧?

现在,如果我创建另一个项目(2)并为该项目创建5个新任务,则id将从6开始,最多为11。

问题是:即使已经有项目1的任务记录1-5,第二个项目的任务ID是否有可能再次从1开始?基本上我想要的是每个项目都有一些“孤立”的任务,所以每个项目的id为1时,每个任务都会重新开始。这样,通过搜索id,找到例如项目2的任务23和项目1的任务23将更加井井有条。

那有意义吗?

如果不清楚,请告诉我。

一如既往地提前感谢大家!

问候!

ruby-on-rails activerecord
1个回答
1
投票

DB ID与用于路由和显示的ID之间可能存在差异。

例如,

你可以使用一个名为displayed_id的单独字段,并在那里输入你想要的任何数字。您可以将其设置为与project_id相关的唯一约束。也就是说,你可以通过总是去找project.tasks.find_by(displayed_id: params[:id])找到一个任务

© www.soinside.com 2019 - 2024. All rights reserved.