为具有不同数据的多用户设计mogoid

时间:2013-01-06 12:39:13

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

我正在使用rails 3.2.7,mongoid 3,我正在尝试为用户帐户使用设计。

在我开始之前:我正在搜索我的问题,并且我阅读了很多教程,根本不符合我的需要。

我遇到类似devise and multiple “user” models

的问题

但我使用的是mongodb,所以我觉得这个问题不是很明显。

我有3种类型的用户“:

  1. 可以拥有许多地方且可以管理它们的管理员(编辑信息)。
  2. 可以搜索地点(甚至没有用户可以)并创建地点列表的用户。用户也可以评论并记下这些地方。
  3. 可以编辑/删除anythig的管理员,因此管理员是上帝。
  4. 所以,他们都有不同的数据(登录信息除外),我不知道哪种解决方案最好。

    如果他们拥有相同的数据和不同的行动,但是数据也不同(但是我使用的是mongoid,所以也许会没事的?)

    带角色的单用户模型是另一种解决方案,但我不知道如何存储不同的数据,可能是多态的?我不完全明白应该如何使用设计实现,也许可以使用cancan。

    也许还有第三个?

    我知道什么是STI,多态关联,以及如何使用CanCan实现角色,但问题是我不知道如何用设计连接它们?

    如果签名表格或签名很少,则无关紧要。我也不必使用设计。

    我发现很少有教程/示例如何为多用户应用程序使用devise,monogid,role,但它们是用户存储相同数据的时候,因此它们不适合我。

    你能给我一些建议,或者一个可以帮助我的链接吗?

    感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我建议为不同的用例构建不同的控制器。不要在数据内部构建不同视图的依赖关系。这样,您可以自由地将数据用于其他用例或其他用户组,而无需直接更改。

只需为不同的用例创建控制器。这样您就可以随时更改它们而无需更改数据模型。