我正在创建一个社交网络应用程序,使用rails和devise作为用户身份验证的宝石。我有一个以上的用户类型,不知道如何继续。
我的userType1和userType2几乎没有什么共同之处,所以我不知道STI是否是合适的选择。
我应该从devise user继承这两种用户类型,还是应该使用Devise创建每个用户类型。
最后,我是应该创建用户类型中的所有社交字段,还是应该为此类信息创建一个配置文件模型
非常感谢您的任何帮助。
第一种类型的用户是具有基本字段的客户,如名字、姓氏、个人资料照片和家庭地址。
第二种类型的用户是具有许多其他字段的座席,如名字、姓氏、头像、业务信息(地址、电话..etc)、专业、类别、头衔、网站、社交帐户和其他字段。
两者之间的功能差异很大,代理用户将充当朋友、标签、创建事件、列表等。客户只会创建列表、联系代理商和搜索列表。
发布于 2016-02-03 06:15:16
我会认真地重新考虑为你的用户类型提供两种模型的想法。取而代之的是,考虑建立一个苗条的用户模型,并使用关联(如User.profile、User.details)保存额外的属性。这将避免你在设计代码中处理不同的“用户”模型,从而省去了很多麻烦。
发布于 2016-02-03 06:44:54
不幸的是,如果没有关于用户模型之间差异的细节,很难提供具体的答案,但这里有一些需要考虑的东西:
Devise用于处理用户注册、登录和内容管理。
如果您的两种用户类型将以相同的方式创建帐户、以相同的方式登录或查看几乎相同的内容,则可能不值得拥有两个模型,因为细微的差异可能会存储在模型本身中。
如果你的两个用户在功能上有很大的不同,那么将他们分开可能会使你的代码更具可读性。如果它们在概念上有很大的不同,那么为了使您的代码与您的域模型相匹配,将它们分开也是值得的。
确保考虑两种不同类型的用户将如何注册/登录。如果它们打算使用相同的页面/表单,那么处理两种不同的类型将立即变得非常复杂,可能会令人望而却步。
https://stackoverflow.com/questions/35164627
复制相似问题