0

我在解决某些问题时遇到了一些麻烦。基本上,我正在开始一个新项目,该项目涉及一组组组组组组......嗯,你明白了。

无论如何,整个应用程序中唯一有点“通用”的模型是用户的概念(因为它们决定了任何人拥有什么特权)。当您拥有可以“拥有”其他组的组时,问题就出现了。例如,您可以拥有由“国家”章拥有的“州”章拥有的“城市”章等。并且,每个章都可以拥有自己的用户,然后有权访问其下的所有组.

但问题是,没有一个组可以保证被另一个组拥有(或使用),因此它们需要独立管理。我不能完全概念化处理这种性质的事情的方法。我的意思是我可能会使用某种acts_as_nested 设置,但我担心即使这样也可能会失控。此外,就组本身而言,我是否应该使用某种继承模型(鉴于它们可能会共享许多属性)?

也许我应该简单地为每个组创建一个单独的 MVC 设置——尽管仍然存在关联用户等问题。任何人都可以提供建议吗?

最好的

4

1 回答 1

0

您可以创建一个自引用的组表。这会将您的所有组数据保存在一个表中,并且魔术是通过关联完成的。

Ryan Bates 有一个 railscast,可能会根据您的情况进行调整。例如,而不是友谊,拥有所有权或类似的东西。

编辑:只有一个父母有帮助。看来插件acts_as_tree可能适用于手头的任务。Ryan Bates 碰巧也有一个用于该插件的railscasts Epidsode 。

目标

1:允许组有孩子,父母解决方案:acts_as_tree

2:允许团体可能成为或保持独立。 解决方案:acts_as_tree。只需删除 parent_id,该组将成为它自己的根节点

3:执行层次结构(例如,城市不能有另一个城市作为父级)。 解决方案:这可能必须通过自定义验证来完成

4:用户权限继承。我预计这个特定的目标将是最具挑战性的。当然,我不知道“权利”对你的申请意味着什么,但我会做一些假设……你在我错的地方填空。一旦您有了用户和组之间的关联(以及可能的“权限”表)。解决方案:要确定 current_group 的权限是否应适用于 current_user,a) 检查所有权,如果不是 b) 横向向上 current_group.ancestors 直到您得到答案或找到根源。

这听起来像是一个有趣的项目。祝你好运!

于 2011-05-20T04:18:46.910 回答