1

通常のフィールドを持つ標準的なデバイス ユーザー モデルがあります。

これは、人々が滞在する場所を探しているか、滞在する場所を持っている状況です。したがって、人がなり得るユーザーには2つのカテゴリがあります。これらの 2 つのカテゴリは非常に明確です (つまり、宿泊先を探している人と、宿泊先を持っている人とは非常に異なる分野を持っています)。

したがって、ユーザーには次のものがあります。

User: name, email, password, profile_id

ユーザーはプロファイルを持つこともできます (つまり、家を探しています)。

Profile: age, sexuality, religion, occupation

それが私が今持っているものです。ここで、これを少し変更する必要があります。そのため、ユーザーはプロファイルまたは... 家を持つことができます (つまり、家があり、より多くの人を探しています)。

House: price_per_week, address, etc

ActiveRecord でこれをモデル化するにはどうすればよいですか? ある種の多形関連?

4

1 に答える 1

1

一般に、モデル化するオブジェクトが少しでも異なる場合、ポリモーフィックな関係は時間の経過とともにうまく機能しないことがわかりました。あなたの場合、2つのオブジェクトを別々に保つことをお勧めします。

一般に、最善の方法は、データを取得する方法を検討することです。たとえば、次の両方にアクセスしたいとします。

@user.house

また

@user.profile

usersそのため、テーブルととテーブルの両方の間に関係 (オプションの場合もあります) を設定することから始めることをお勧めします。ユーザーが 2 つのタイプのどちらであるかを判断するために使用できるフィールドも追加します。profileshousestype

これにより、ユーザーはどちらのタイプでも、 と の両方を持つことができprofileますhouse

したがって、家とプロファイルの両方のbelong_toユーザー、およびユーザーhave_many(またはhave_one) 家とプロファイルの両方

于 2012-05-08T03:38:39.570 に答える