我有一个我无法解决的问题。问题是我有一个用户模型和一个事件模型,在事件模型中用户可以有多个角色。我们还可以为现有用户添加服务员,或创建可以转换(仅通过数据库中的标志)的虚假用户给真实用户。
So the diffrent user-type are:
A existing user who has created the event (this is a one-to-one relationship)
A existing user who is admin for the event
A existing user who has paid money on the event
A existing user who attended the event
and lastly a person who attended the event but isn't a user yet but has to be shown, so a fake-user would do here..
当我添加参加用户/假用户时,我使用嵌套表单。
那么有没有人知道如何解决这个问题? 我尝试过habtm,has_many:通过多态和STI,但没有运气。 提前谢谢!
答案 0 :(得分:1)
你想要一个多哈特关系,但我认为你不需要它。你不能使这种多态。这是我建议的设置:
对于您的活动表列:
按原样保留现有用户表...
现在,有趣的部分 - users_events表:
至于处理不存在的出席用户问题 - 如果您不关心用户的数据,只需将user_id留空即可。如果你想要数据,我建议使用你已经建议的 - 一个布尔标志。