【问题标题】:Database and Authentication Design Question数据库和身份验证设计问题
【发布时间】:2011-09-16 15:38:35
【问题描述】:

我有一个 Rails 3.1 应用程序。我打算使用 Devise 进行身份验证,使用 Mongoid 进行数据库存储。所以基本上会有两种不同类型的用户:客户和开发人员。他们每个人都有不同的能力,客户可以发布项目,开发人员可以响应项目的创建者。所以我们必须以某种方式将它们分开。我认为他们都可以使用用户模型(可能嵌入在 Profile 或 Client 或 Developer 模型中)。客户不会有任何个人资料,但开发人员会有。

所以我想出了几个想法:

  • Client 和 Developer 模型,每个模型都有不同的字段,但每个 嵌入用户模型。但是我们必须提供一个登录表单 两者都...

  • 另一个想法是应该有用户模型,以及客户和开发人员 从用户继承。然后我们可以只授权用户,但我们也可以 将需要以某种方式访问​​个人资料数据。

您对如何做到这一点的想法?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 devise mongoid


    【解决方案1】:

    Client 和 Developer 模型,每个模型都有不同的字段,但每个都嵌入了 User 模型。但是我们必须为两者提供一个登录表单......

    我不知道为什么这是一个问题,究竟是什么?为什么需要两种不同的登录表单?

    我会创建两个不同的类,并让它们混入用户,这将包含通用功能。

    【讨论】:

    • 抱歉我的英语有点笨。我的意思是我只需要 1 个登录表单。 :D
    【解决方案2】:

    向用户模型添加一个“类型”字段怎么样?

    【讨论】:

    • 但是客户和开发者之间会有很大的不同。如果我们从 User 继承它们,那么(可能)Client 和 Developer 存储在带有“type”字段 + 不同字段集的 User 模型中。那么问题是如何从那个 User 对象中创建 Client 或 Developer 对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多