0

什么时候可以使用多个设计模型?

我有 3 种类型的用户 - 用户、供应商和管理员。供应商的字段比用户多,所以我想为他们提供单独的表格。用户可以使用 facebook 注册和登录(供应商不能)。用户和供应商共享相同的登录页面/表单。

我从多个设计模型开始,对如何处理单个登录页面感到困惑,然后在这里阅读了很多关于使用多态关联和 STI 而不是离散模型的内容。我仍然对何时应该使用每种方法以及什么会在这里更好地工作感到困惑......我知道它有点含糊,但任何建议都会很棒,或者任何好的链接..

用户在注册时还填写了一堆额外的字段——即使是通过 facebook。如何跟踪omniauth 登录的这些字段?(我应该为此使用设计还是诸如omniauth身份之类的东西..?)

谢谢你看这个!我是第一次设置身份验证的 Rails 新手,非常感谢帮助

4

1 回答 1

1

根据情况,建议分离或使用单个模型。替代方案:

  1. 使用单独的模型,覆盖控制器,所以首先检查用户中的记录是否匹配,如果不匹配,请尝试与供应商
  2. 使用单个模型存储用户和供应商,使用布尔值(如果是多态关联则为字符串)检查用户类型,并添加相关模型以存储附加字段

我认为选项#1更容易但更大,选项#2有点困难但更短。

此外,将模型分开是一个好主意,因为用户连接到 FB 和供应商没有,它代表了很多差异。

另一方面,使用选项 #2 搜索会更快,因为它只有 1 个查询,并且表会很轻,因为它不包含用户和供应商的特定字段;您还必须考虑这一点才能做出决定。

对于管理员,您可以遵循类似的标准。

看看这个:https ://github.com/mkdynamic/omniauth-facebook

于 2012-12-20T07:56:44.453 回答