使用嵌套控制器或声明性授权进行管理操作?

时间:2010-02-03 12:19:47

标签: ruby-on-rails nested

说,我有一个有多个模型的应用程序:帖子,博客,待办事项等我希望管理员编辑,删除所有用户帖子,博客,待办事项,我是为每个创建嵌套管理控制器还是使用声明性授权设置可以编辑/销毁用户,帖子等的管理员帐户?

我知道这没有正确的答案,我只是在寻找最简单,最干劲的方法。

由于

2 个答案:

答案 0 :(得分:2)

声明式授权与您组织管理员情况的方式完全不同。对于同样的问题,这些不是不同的替代方案。如何授权操作或执行访问控制与管理界面是使用嵌套控制器和不同的界面无关,或者与具有更多按钮的常规用户使用相同的界面。

那就是说我会考虑一下我想你想问的问题:你的管理界面应该与你的用户界面相同,还有几个用于管理操作的按钮?

对于最简单的网站,我的答案是否定的。想象一下,必须通过访问每个帖子来清除博客上每个帖子的垃圾邮件。

现在想象一下,如果按日期有一个评论表。

您更喜欢哪个?

现在,如果您认为您的管理员需要一个适合他们需求的自定义界面,那么您需要询问它是否应该嵌套。

答案 1 :(得分:0)

我不是一个专家,但我认为这篇文章很好:http://www.contextualdevelopment.com/articles/2008/nested-controllers-and-resources它指出了在你描述的管理上下文中使用嵌套控制器的一些优点。

如果我理解正确,在这两种情况下你都需要一个具有管理员角色的用户,对吧?所以可能更多的是如何构建控制器。嵌套控制器设置imho更清洁,因为它在“主”控制器中节省了几个条件。您只需将“admin”放入嵌套控制器和主控制器中的所有其他内容即可。