2012-04-25 50 views
0

我有一个应用程序使用以下模型:人员,项目,项目管理员。Rails - 允许人们添加记录之间的关联,但只允许管理员删除它

人与项目之间存在HABTM关联。每个项目都有一个ProjectAdminsList,每个项目可以有很多人。

属于每个项目的人可以添加其他人,但是我想限制将此关联移除到属于ProjectAdminsList的人。在视图中限制这一点很简单,但在控制器中执行它的最佳方式是什么?我正在寻找这方面的一般指导。

回答

0

您需要某种授权系统,我建议您看看Ryan Bates(RailsCasts人员)编写的CanCan gem,您可以从Authorization with CanCan开始观察RailsCast,然后查看真正优秀的文档。

这里的概述:

  • 它只是需要一个current_user方法来确定当前登录的用户
  • 你写在一个文件中(ability.rb
  • 您使用的授权规则在视图层中的can?方法来检查用户是否可以做某些操作
  • 您在控制中调用load_and_authorize_resource使CanCan自动检查t他基于ability.rb文件进行授权。

当然,我只是抓了表面,说文档是非常好的。

+1

我已经实现了一些基本的权限检查,但CanCan看起来非常好。将尝试一下。 – ntlk 2012-04-26 12:38:42

相关问题