每个项目中每个任务的唯一标识符,但不是所有项目中的唯一标识符(多租户问题)

时间:2014-10-17 06:57:44

标签: ruby-on-rails uniqueidentifier multi-tenant

我正在开发rails 4应用程序,我有很多项目,每个项目都有很多任务。

我的问题是我想要唯一地标识项目中的每个任务,比如想要给出前两个字符,然后是任务id,这样它就变成了xy-1,xy-2但是因为所有任务都存储在第二个项目的任务表中从ab-3开始,因为该任务的id是3。

我想要的是它应该从ab-1开始,因为它是该项目的第一项任务。

由于可以删除任务,因此不存在删除问题。

请帮帮我。 谢谢

1 个答案:

答案 0 :(得分:2)

您可以做的是在项目模型中创建一些“增量”字段,并将其设置为整数类型。例如,您将项目xy和增量字段设置为0(假设默认值为0)。当您想为该项目创建任务时,您只需读取增量字段(此案例为0),添加其1(0 + 1),然后再次保存项目。您可以将该值用于任务ID并创建一些内容:xy-1。它应该看起来像:

project = Project.find(10)
curr_inc = project.increment
curr_inc += 1
project.increment = curr_inc
project.save
task_id = "#{project.code}-#{curr_inc}"