Ruby on rails 如何对可以是主机、客户或两者兼而有之的用户进行建模?轨道

Ruby on rails 如何对可以是主机、客户或两者兼而有之的用户进行建模?轨道,ruby-on-rails,Ruby On Rails,我正在尝试将airbnb这样的东西重建为一个辅助项目,我想知道如何建模一个用户实体,它可以是主机,客户,也可以是两者。你怎么能代表这一点 多态性的问题是用户只能是主机或客户,但不能同时是两者 通过“二有一”关系实现这一点的最佳方法是什么?我解决这个问题的方法是使用三种模型:用户,租赁,(房屋出租)和租赁预订(用户进行的预订) 一个用户有许多租赁,而租赁“主机”将由拥有租赁(租赁用户id)的人决定。RentalBooking将有一个rental\u id和一个user\u id(用户id就是客户)

我正在尝试将airbnb这样的东西重建为一个辅助项目,我想知道如何建模一个
用户
实体,它可以是
主机
客户
,也可以是两者。你怎么能代表这一点

多态性的问题是
用户
只能是
主机
客户
,但不能同时是两者


通过“二有一”关系实现这一点的最佳方法是什么?

我解决这个问题的方法是使用三种模型:
用户
租赁
,(房屋出租)和
租赁预订
(用户进行的预订)

一个
用户
有许多
租赁
,而
租赁
“主机”将由拥有
租赁
(租赁用户id)的人决定。
RentalBooking
将有一个
rental\u id
和一个
user\u id
(用户id就是客户)


就我个人而言,我没有必要给用户一个
主机
客户
的角色,但是这些信息很容易在每个预订或租赁帖子中呈现出来。

您可能只需要使用一个名为
角色
的单独模型,或者可以用来将不同权限绑定到用户的东西。一个
角色可以是`主机
,一个可以是
客户',但用户也可以同时是这两个角色。只是一个想法。你会给这个角色加上评级吗?例如,如果用户可以作为主机或客户进行单独的分级。。。这行得通吗?我认为评级将
属于一个用户和一个角色,因此
user.host.rating
可以返回其主机评级和
user.customer.rating
将是客户评级。差不多吧。