2

例を使用して、達成したい動作を説明します。

プロジェクト管理アプリがあり、タスクを追加したが、すべての寄稿者がアプリのユーザーであるとは限らない場合。したがって、タスクに貢献者を追加するときに、ユーザー名または電子メールアドレスを入力できます。

これが私が少しトリッキーだと思っている部分です。モデルには、モデルtaskを介してリンクされている多くの貢献者がいますuserが、この時点から、2つのことを達成したいと思います。

  1. 非会員の電子メールを保存します(これは明らかに非常に簡単です)

  2. その電子メールアドレスがアカウントを作成する場合、そのユーザーをタスクにリンクし、一時的に保存された電子メールを削除します。

このように、そのユーザーがアカウントを作成すると、関連するすべてのタスクがすでに電子メールに関連付けられています。

これは私が多形の関連で達成できるものですか?または私が見なければならない他の何かがありますか?

4

1 に答える 1

1

ポリモーフィックな関連を含む部分は多くtasksあり、多くありcontributorsます。

あなたが望む他の機能を達成するための多くの方法があります。

おそらく、contributorなどの他のフィールドを使用せずに新しいレコードを作成して、一時的な電子メールアドレスを保存しますpassword。ユーザーが実際にサインアップするとき、私はfirst_or_createユーザーアカウントのセットアップを完了するための方法を使用します。

これにより、一時的なメールを保存したり、タスクの所有権を譲渡したりする必要がなくなります。サインアップする前にidaをにリンクするために使用されるものは、サインアップ後に使用されるものと同じです 。contributortask

于 2012-06-18T13:46:21.030 に答える