【问题标题】:Use nested controller or declarative authorization for admin action?使用嵌套控制器或声明性授权进行管理操作?
【发布时间】:2010-02-05 00:06:14
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: ruby-on-rails nested


    【解决方案1】:

    声明式授权与您组织管理情况的方式完全不同。对于同一问题,这些不是不同的替代方案。您如何授权操作或执行访问控制与您的管理界面是使用嵌套控制器和不同的界面,还是使用与普通用户相同的界面但多了几个按钮无关。

    也就是说,我将试探一下您想问的问题:您的管理界面是否应该与您的用户界面相同,但要多一些用于管理操作的按钮?

    即使对于最简单的网站,我的回答也是否定的。想象一下,必须通过访问每一篇文章来清除博客上每一篇文章中的垃圾邮件。

    现在想象一下,如果您有一个按日期排列的 cmets 表。

    你更喜欢哪个?

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

    【讨论】:

      【解决方案2】:

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

      如果我理解正确,在这两种情况下,您都需要一个具有管理员角色的用户,对吧?所以可能更多的是关于如何构造控制器。嵌套控制器设置恕我直言有点干净,因为它在“主”控制器中保存了几个条件。您只需将所有“管理”内容放入嵌套控制器中,并将其他所有内容放入主控制器中。

      【讨论】:

      • 是的,我以前看过那篇文章,但并没有真正回答我的问题。我想我会使用 declarative_authorization 插件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      相关资源
      最近更新 更多