首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails为社交网络设计用户架构

Rails为社交网络设计用户架构
EN

Stack Overflow用户
提问于 2016-02-03 06:01:33
回答 2查看 164关注 0票数 0

我正在创建一个社交网络应用程序,使用rails和devise作为用户身份验证的宝石。我有一个以上的用户类型,不知道如何继续。

我的userType1和userType2几乎没有什么共同之处,所以我不知道STI是否是合适的选择。

我应该从devise user继承这两种用户类型,还是应该使用Devise创建每个用户类型。

最后,我是应该创建用户类型中的所有社交字段,还是应该为此类信息创建一个配置文件模型

非常感谢您的任何帮助。

第一种类型的用户是具有基本字段的客户,如名字、姓氏、个人资料照片和家庭地址。

第二种类型的用户是具有许多其他字段的座席,如名字、姓氏、头像、业务信息(地址、电话..etc)、专业、类别、头衔、网站、社交帐户和其他字段。

两者之间的功能差异很大,代理用户将充当朋友、标签、创建事件、列表等。客户只会创建列表、联系代理商和搜索列表。

EN

回答 2

Stack Overflow用户

发布于 2016-02-03 06:15:16

我会认真地重新考虑为你的用户类型提供两种模型的想法。取而代之的是,考虑建立一个苗条的用户模型,并使用关联(如User.profile、User.details)保存额外的属性。这将避免你在设计代码中处理不同的“用户”模型,从而省去了很多麻烦。

票数 0
EN

Stack Overflow用户

发布于 2016-02-03 06:44:54

不幸的是,如果没有关于用户模型之间差异的细节,很难提供具体的答案,但这里有一些需要考虑的东西:

Devise用于处理用户注册、登录和内容管理。

如果您的两种用户类型将以相同的方式创建帐户、以相同的方式登录或查看几乎相同的内容,则可能不值得拥有两个模型,因为细微的差异可能会存储在模型本身中。

如果你的两个用户在功能上有很大的不同,那么将他们分开可能会使你的代码更具可读性。如果它们在概念上有很大的不同,那么为了使您的代码与您的域模型相匹配,将它们分开也是值得的。

确保考虑两种不同类型的用户将如何注册/登录。如果它们打算使用相同的页面/表单,那么处理两种不同的类型将立即变得非常复杂,可能会令人望而却步。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35164627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档