1

私はRailsが初めてで、1人のユーザーが多くの組織を持つことができ、多くの個人を持つことができ、多くのプロジェクトを持つことができるアプリケーションを構築しよています

これらは私のモデルです(まったく意味がありますか?):

ユーザー ---< 企業 ---< 個人 ---< プロジェクト

ここで私の重要な質問は、ある人がどの会社にもまったく所属していないとしたらどうなるかということです。私のアプリケーションは引き続き機能し、たとえば次のようにプロジェクトにアクセスできますか...

current_user.persons.projects

…会社がないのに?

おそらく、Rails でこれらのテーブルをモデル化するためのかなり簡単な方法がありますが、何らかの理由で、これについて理解することができません。助けてくれてありがとう。

4

4 に答える 4

1

個人と組織は上下関係ではありません。1つのように見えますが、そうではありません。グラフです。

組織は 0 個以上のサブ組織を持つことができます。時間の経過とともに従業員が0人以上になる可能性があり、1人が同時に複数の組織で働くことができます.

個人または組織に対して販売または購入することもできるため、それらを同じスーパータイプとしてモデル化する必要があります。

これは党モデルと呼ばれるもので、始める前にここで一読することをお勧めします。

于 2012-10-03T19:06:15.177 に答える
0

さて、私の重要な質問は、人がどの会社にもまったく属していない場合はどうなるかということです。私のアプリケーションは引き続き機能し、プロジェクトにアクセスできますか?たとえば、次のようになります...

重要な質問への回答は次のとおりです。はい、どのユーザーも会社を持たない人々に属するプロジェクトにアクセスできます。

Project.all
于 2012-10-02T15:17:42.890 に答える
0

あなたは

モデルの belongs_to と has_many 。

以下のガイドをご覧ください。

http://guides.rubyonrails.org/association_basics.html

于 2012-10-02T15:12:41.407 に答える
0

アソシエーションを使用すると、ge0man による回答に投稿されているように、構造を設定できます。

検証を使用すると、保存/更新する前に、モデルに必要な適切なプロパティがあることを確認できます。

そうしないで User.projects のような関数を呼び出すと、そのユーザーにリストされているプロジェクトが見つからないため、空の配列が返されます:)

于 2012-10-02T15:13:56.383 に答える