2

我将使用一个示例来解释我想要实现的行为。

如果您有一个项目管理应用程序并添加了一项任务,但并非所有贡献者都是该应用程序的用户。因此,当您向任务添加贡献者时,您可以输入用户名或电子邮件地址。

这是我发现有点棘手的部分。该task模型有许多通过user模型链接的贡献者,但从这一点开始,我想实现两件事。

  1. 存储非会员电子邮件(这显然很简单)

  2. 如果该电子邮件地址要创建一个帐户,那么它将将该用户链接到该任务并删除临时保存的电子邮件。

这样,当该用户创建帐户时,所有相关任务都将与他们的电子邮件相关联。

这是我可以通过多态关联实现的吗?或者还有什么我应该看的吗?

4

1 回答 1

1

涉及多态关联的部分是多tasks有多contributors

有很多方法可以实现您想要的其他功能。

我可能会通过创建一个contributor没有其他字段(例如password. 当用户实际注册时,我会使用一种first_or_create方法来完成用户帐户的设置。

这消除了存储临时电子邮件和转移任务所有权的需要。在他们注册之前id用于将 a 链接contributor到 atask的方法与他们注册后使用的方法相同。

于 2012-06-18T13:46:21.030 回答