【问题标题】:Can Cancan be used to restrict access to specific values for a single model?Cancan 可以用于限制对单个模型的特定值的访问吗?
【发布时间】:2010-10-05 15:48:24
【问题描述】:

我有一个具有类别的 Rails 3 应用程序。类别可由具有类别所有者角色的人管理。但是类别所有者应该只能访问他拥有的类别,而不是其他人。我可以使用 CanCan 锁定管理功能,但我需要自己限制特定类别。

【问题讨论】:

    标签: ruby-on-rails cancan


    【解决方案1】:

    您可以通过以下两种方式之一进行操作。

    您可以指定一个属性哈希来限制您的Ability 类中的访问。

    can :manage, Category, :user_id => user.id
    

    或者你可以使用块:

    can :manage, Category do |c|
      c && c.user_id == user.id
    end
    

    这些都检查您要检查的类别上的user_id 属性是否与您要检查的用户匹配。

    这些在 CanCan 文档中分别在 Defining Abilities with HashesDefining Abilities with Blocks 下进行了描述。

    【讨论】:

    • 谢谢!我深埋在 Rails 3 中,我想我没有 RTFM 的 CanCan 文档!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多