如何创建两个需要相同资源表名但不同数据的 Rails 模型



我正在 Rails 3.2 中构建一个物业管理(公寓(应用程序。单位和物业都有便利设施。一个单位可能有"巴士路线"和"投币式洗衣房"等设施,一个单位可能有"空调"和"无障碍"等设施。我最初将我的物业设施资源表命名为 amenities,将连接表命名为 amenities_properties 。但是,现在我开始为单位构建我的便利设施表,我不确定我应该如何命名这些。我可以和amenities_properties一起去,amenities_units.但是,我是否将连接表称为amenities_properties_propertiesamenities_units_units?对我来说似乎很奇怪。

有一个具有类型字段的 amenities 表来指示它是否属于单位或属性会更好?

我会使便利设施多态,所以它看起来像这样:

便利设施.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_typeamenitable_id列添加到设施表。

因此,当您创建新的便利设施时,请将amenitable_type设置为'unit''property'(取决于您的型号名称(,并将amenitable_id设置为其所属单位或属性的 ID。

最新更新