Lea*_*RoR 1 model-view-controller ruby-on-rails
这是关于处理模型字段的一般问题,只是想知道这是否是正确的方法.假设我有模型House
,用户可以选择10种功能:
Swimming Pool
Hot Tub
Tennis Court
Boat Parking
Horse Facilities
Balcony
Pets Allowed
Energy Efficient
Lease Option
Disability Features
Run Code Online (Sandbox Code Playgroud)
这意味着我必须制作10个布尔列吗?我从未使用过如此多的表格列,所以我不确定.拥有这么多是正常的做法吗?
谢谢.
另一种选择是拥有一个名为HouseOptions(或任何你喜欢的)的表,然后是一个名为UserHouseOptions的连接表.
AR关系看起来像:
# user.rb
has_many :user_house_options
has_many :house_options, :through => :user_house_options
# user_house_options.rb
belongs_to :user
belongs_to :house_options
# house_options.rb
has_many :user_house_options
has_many :users, :through => :user_house_options
Run Code Online (Sandbox Code Playgroud)
那么,用户没有额外的列.它只是通过AR关系连接表.用户住宅选项将包含两列:user_id和house_options_is.然后House Options只有字符串列("游泳池"等),它只是一个参考表.
有关has_many:通过关系(和示例代码)的更多信息,请查看此Rails指南:http: //guides.rubyonrails.org/association_basics.html#the-has_many-through-association