0

Rails 3.2でプロパティマネジメント(アパート)アプリケーションを構築しています。ユニットとプロパティの両方に設備があります。宿泊施設には「バス路線」や「コインランドリー」などの設備があり、ユニットには「エアコン」や「バリアフリー」などの設備があります。私はもともと、プロパティアメニティリソーステーブルamenitiesと結合テーブルに名前を付けていましたamenities_properties。ただし、ユニットのアメニティテーブルを作成し始めたので、これらにどのように名前を付けるかわかりません。私はと一緒に行くことができましamenities_propertiesamenities_unitsamenities_properties_propertiesしかし、それでは、結合テーブルを呼び出しamenities_units_unitsますか?私には奇妙に思えます。

amenitiesユニットに属しているのかプロパティに属しているのかを示すタイプフィールドを持つテーブルがある方が良いでしょうか?

4

1 に答える 1

0

アメニティをポリモーフィックにすると、次のようになります。

amenity.rb

#There's not a grammatically good way to turn "amenity" into a polymorphic name so... 
belongs_to :amenitable, :polymorphic => true

property.rb と unit.rb

has_many :amenities, :as => :amenitable

アメニティをポリモーフィックにすると、amenitable_typeandamenitable_id列がアメニティ テーブルに追加されます。

したがって、新しいアメニティを作成するときは、amenitable_type'unit'または'property'(モデル名に応じて) に設定し、amenitable_idをそれが属するユニットまたはプロパティの ID に設定します。

于 2012-06-04T21:49:40.500 に答える