2012-01-06 6 views
0

Deviseによって管理されているユーザーがいるアプリケーションがあります。アプリケーションの実際のユーザーは、ユーザーを「友人」と他の1つのタイプとして追加し、「ワーカー」と呼ぶことができます。 「友人」と「労働者」は、1日の終わりにすべてのタイプのユーザーです。Rails複数のタイプ(おそらくSTI)のユーザーを作成しますか?

キャッチは「友人」とそれらのための「労働者」の両方でシステムに一人(ユーザー)を持つことができるようにするユーザーのために必要があるということです。また、独自のID(ここでは携帯電話番号)によるユーザの重複のない必要があります。特定のユーザーが別のユーザーを「友人」として追加した後、「ワーカー」として追加すると、システム内の新しいユーザーではなく、単純に何らかの関連付けが行われます。

私は伝統的な意味でこれを処理する方法を知っているが、私は、レールにこれを処理するSTIまたは多型団体のいずれかでいくつかの巧妙な方法があることを確認しています。

どのような考えですか?さまざまなユーザータイプがすべて同じID(名前)、名前、モバイルなどの実質的に同一のフィールドを持っていることに注意する価値があります。

私は、ユーザーのいずれかがそれらに関連付けられた「友人」または「労働者」タイプのいずれかまたは両方を持ち、それらのタイプのそれぞれは、それらに関連付けられた他の2つの組み合わせを持つことができるべきである。

答えて

1

誰かが友人であるか、労働者が2人の間に参加モデルではなく、どちらかの人の属性の属性にするかどうかのようにそれは私に聞こえます。

このようにして、ある人物はある人物と別の人物の友人になることができます。

+0

おそらく私の説明では十分ではなかったでしょう。実際のシナリオは次のとおりです。 –

+0

ユーザーはDeviseによって管理されます。私は親であるユーザー、他の親(または「友人」)であるユーザー、ベビーシッターであるユーザーを持っています。ユーザー(親)は多くの友人と多くのベビーシッターを持つことができ、また友人もベビーシッターになることができます。 シッターや友人のリストを取得できるようにする必要があります。ユーザーがシッターや友人をシステム内に追加した場合(携帯電話番号で一意)、システムは別のユーザーを追加することはありませんユーザーがすでに存在しているので、シッターまたは友人の関係を確立するだけです。 これはもう少し意味がありますか?これについての考えは? –

関連する問題