我的应用程序中有一个Business
模型,它将存储有关
部分商家共享属性/设施:
但有些是针对单一类型的企业,例如餐馆:
我想知道在DB中建模这些信息的最佳方法是什么?
我目前的想法:
使用Business
的单个表格来保存所有信息和属性。大多数属性都是布尔值,因此只要属性不适用于业务类型,它就只是false
。
答案 0 :(得分:1)
这就是我这样做的方式。您应该有一个名为business_type
的属性,可让您选择要显示的属性。
例如,在展示视图中:
<% if @business.business_type == "restaurant" %>
Provides take out: <%= @business.take_out %>
<% end %>
您可以使用jQuery根据餐馆类型更改新表单上的可用字段:
<%= f.select :business_type, [["Restaurant", "restaurant"], ["Store", "store"]] %>
<script>
$('#business_business_type').change(function(){
// hide or show fields here based on this.value
});
</script>
如果你想避免拥有一堆数据库列,你可以使用rails 3.2中的键值存储(向下{3/3}的3/4):
创建一个名为amenities
的列。然后在business.rb
:
store :amenities, accessors: [:wifi, :ac, :accessibility, ...]