我有以下模型(模型不重叠,会计不能成为客户):
会计师和客户可以登录/注册。
进行身份验证的最佳方法是什么?
选项A:
将Devise与两个单独的模型(会计和客户: https://github.com/plataformatec/devise/wiki/How-to-Setup-Multiple-Devise-User-Models
选项B: 将Devise与一个模型用户一起使用,然后与另一个模型概要文件一起使用,该模型概要文件具有一些信息,例如列角色。
优点和缺点将非常有用,因为每次我构建这样的Rails应用程序时我都会问自己一个问题。我习惯于使用选项B
谢谢。
答案 0 :(得分:2)
那么,正确的解决方案取决于您如何处理这两种类型的用户(会计师和客户)。这两个选项都是合理的,但是,我会选择选项B。
优点是:
customers
和accountants
表中,则可能会有歧义。当您仅使用一个表users
时,就没有这种问题。accountant
角色,另一个登录名是customer
。对于我来说,这不是用户友好的,最好是一次登录并选择一个选项,以便在登录时在角色之间进行切换。另一方面,如果会计师和客户根本不重叠,例如普通用户和管理员,则将它们设置为不同模型是有意义的。但是在这种情况下,他们也将需要不同的界面,就像站点管理员的管理面板和普通用户的常规UI一样。