【问题标题】:Rails - allow people to add association between records, but only allow admins to remove itRails - 允许人们在记录之间添加关联,但只允许管理员删除它
【发布时间】:2012-04-25 10:10:50
【问题描述】:

我有一个具有以下模型的应用:人员、项目、ProjectsAdminLists。

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

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

【问题讨论】:

    标签: ruby-on-rails associations user-permissions


    【解决方案1】:

    您需要某种授权系统,我建议您看一下 Ryan Bates(RailsCasts 人)编写的 CanCan gem,您可以在 Authorization with CanCan RailsCast 开始观看,然后查看非常好的文档.

    这里是一个概述:

    • 它只需要一个current_user 方法来确定当前登录的用户
    • 您将授权规则写入单个文件 (ability.rb)
    • 您在视图层使用can? 方法来检查用户是否可以对某物进行某些操作
    • 在控件中调用load_and_authorize_resource,使CanCan自动根据ability.rb文件进行授权检查。

    当然,我只是触及了表面,因为文档确实很好。

    【讨论】:

    • 我已经实现了一些基本的权限检查,但 CanCan 看起来确实不错。会试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多