0

ruby アプリケーションで datamapper を使用していますが、理解できない問題に直面しています。

アパート モデルとロケーション モデルがあります。アパートは特定の場所にあり、複数のアパートが同じ場所にある場合があります。これは通常、1対nの関係を説明しています(私は推測します:-))

私の感じでは、Appartement sql テーブルには location_id が必要ですが、Location テーブル内に Appartment ポインターは必要ありません。私にとって、場所はそれ自体で存在する必要があり、アパートを参照するべきではありません。

Appartement の ruby​​ クラスに、以下を追加しました。

has n, Location

しかし、その後、Location Ruby クラス内に appartment_id が作成されますが、これは望ましくありません。

手がかりはありますか?

どうもありがとう、リュック

4

2 に答える 2

1

私はただ言うだろう

class Apartment
  belongs_to :location
end

class Location
  has n, :apartments
end

これにより、@apartment.location および @location.apartments を参照できるようになります。

于 2010-03-25T02:20:38.840 に答える
1

1対多の関係ですが、アパートではなくロケーションモデルです。これは、場所が多くのアパートを持つことができることを意味し、それはあなたが望むものであるため、アパートモデルには location_id があります。あなたがしたことは、データマッパーにアパートに多くの場所があることを伝えたので、場所に appartment_id を追加したことです。

それを修正するには、次を追加できます。

has n, Appartment

ロケーションクラスで。

私はデータマッパーをまったく知りませんが、Rails では両方のモデルで定義できます。Appartment では、次のように定義します。

belongs_to Location

Location では、最初の例のようなものを追加します。

于 2010-01-13T14:15:16.337 に答える