0

以下の(一部)モデルがあります。

User
Booking
Apartment
Villa
Bed_Breakfast
Boutique_hotel

ユーザーは多くの予約を持つことができ、1 つの予約には多くのヴィラ、アパートメント、B&B、またはブティック ホテルを含めることができます。

これは、関係を設定するための私の考えです。

class User 
 has_many: bookings
end

class booking
 belons_to :user
end

class Apartment
 belongs_to :booking
end

class Villa
 belongs_to :booking
end

これは正しい方法ですか?

ありがとう...

レムコ

4

3 に答える 3

1

あなたのアプローチは良くないと思います。has_many :throughテーブルで関連付けを探しているようです。Rails has_many :from Docsを調べることができます。あなたはこのように行くべきです:

class User 
 has_many :apartments, through: bookings
end

class booking
 belongs_to :user
 belongs_to :apartment
end

class Apartment
 belongs_to :user
 has_one :booking
end

それが役立つことを願っています。ありがとう。

于 2013-09-05T13:14:56.427 に答える
0

ヴィラとアパートメントは同じもののようです。どちらも ではないPropertyですか?アパート/ヴィラのそれぞれに同じコードを書く必要がPropertyなくなります。私の推奨事項は次のとおりです。

class Villa < Property < ActiveRecord::Base
end 

class Apartment < Property < ActiveRecord::Base
end

または、ポリモーフィック デザインを使用して、プロパティ タイプを使用することもできます。

于 2013-09-05T13:13:03.977 に答える
0

ええ、すべてがよさそうだし、これを追加してください

class booking
 belongs_to :user
 has_many :villas
 has_many :apartments
 ...
end
于 2013-09-05T13:03:34.033 に答える