我有一个应用程序,其中有由 Devise 管理的用户。应用程序的实际用户会将人添加为“朋友”和另一种类型,我们称他们为“工人”。归根结底,“朋友”和“工人”都是,或者我希望他们都是用户类型。
问题是用户需要能够在系统中有一个人(用户),对他们来说既是“朋友”又是“工人”。还需要用户的唯一 ID 不重复,在这种情况下是手机号码。例如,如果给定用户将另一个用户添加为“朋友”,然后随后将他们添加为“工人”,则它应该只是某种关联,而不是系统中的新用户。
我知道如何在传统意义上处理这个问题,但我确信 STI 或多态关联有一些聪明的方法可以在 rails 中处理这个问题。
有什么想法吗?值得注意的是,各种用户类型都有与之关联的几乎相同的字段(或将要)——非常简单的 id、name、mobile 等。
我想诀窍是任何用户都需要能够拥有与他们相关联的“朋友”或“工人”类型中的一个或两个,并且这些类型中的每一个都应该能够具有与其他两个相关联的组合他们。