Ruby on rails 如何对可以是主机、客户或两者兼而有之的用户进行建模?轨道
我正在尝试将airbnb这样的东西重建为一个辅助项目,我想知道如何建模一个Ruby on rails 如何对可以是主机、客户或两者兼而有之的用户进行建模?轨道,ruby-on-rails,Ruby On Rails,我正在尝试将airbnb这样的东西重建为一个辅助项目,我想知道如何建模一个用户实体,它可以是主机,客户,也可以是两者。你怎么能代表这一点 多态性的问题是用户只能是主机或客户,但不能同时是两者 通过“二有一”关系实现这一点的最佳方法是什么?我解决这个问题的方法是使用三种模型:用户,租赁,(房屋出租)和租赁预订(用户进行的预订) 一个用户有许多租赁,而租赁“主机”将由拥有租赁(租赁用户id)的人决定。RentalBooking将有一个rental\u id和一个user\u id(用户id就是客户)
用户
实体,它可以是主机
,客户
,也可以是两者。你怎么能代表这一点
多态性的问题是用户
只能是主机
或客户
,但不能同时是两者
通过“二有一”关系实现这一点的最佳方法是什么?我解决这个问题的方法是使用三种模型:
用户
,租赁
,(房屋出租)和租赁预订
(用户进行的预订)
一个用户
有许多租赁
,而租赁
“主机”将由拥有租赁
(租赁用户id)的人决定。RentalBooking
将有一个rental\u id
和一个user\u id
(用户id就是客户)
就我个人而言,我没有必要给用户一个
主机
或客户
的角色,但是这些信息很容易在每个预订或租赁帖子中呈现出来。您可能只需要使用一个名为角色
的单独模型,或者可以用来将不同权限绑定到用户的东西。一个角色可以是`主机,一个可以是
客户',但用户也可以同时是这两个角色。只是一个想法。你会给这个角色加上评级吗?例如,如果用户可以作为主机或客户进行单独的分级。。。这行得通吗?我认为评级将属于一个用户和一个角色,因此user.host.rating
可以返回其主机评级和user.customer.rating
将是客户评级。差不多吧。