ruby-on-rails – 如何使用cancancan?

ruby-on-rails – 如何使用cancancan?,第1张

概述我想在我的rails应用程序中为用户授予权限.我有’admin’可以创建,更新和删除所有帖子和评论,’user’可以创建和更新他自己的评论,’guest“谁不能做这些.为此,我使用了宝石’devise’和’cancancan’.我理解’设计’宝石,但我不明白’cancancan’. 在class ability.rb中,如何为这些用户(admin,user,guest)写权限? Cancancan 我想在我的rails应用程序中为用户授予权限.我有’admin’可以创建,更新和删除所有帖子和评论,’user’可以创建和更新他自己的评论,’guest“谁不能做这些.为此,我使用了宝石’devise’和’cancancan’.我理解’设计’宝石,但我不明白’cancancan’.

在class ability.rb中,如何为这些用户(admin,user,guest)写权限?

解决方法 Cancancan允许您仅定义给定上下文的权限.此上下文可能是一个用户角色,它不是cancancan的一部分,因此角色必须由您自己定义.

有多种方法可以定义用户角色,例如

>作为角色模型,
> Rails enum,
>按照建议here,
>作为用户模型的字符串属性.

这完全取决于用例.可以在here找到如何定义能力的示例.在您的情况下,它看起来像:

class Ability  include CanCan::Ability  def initialize(user)    user ||= User.new    if user.revIEwer? #Just a logged user      can :manage,Comment,{ owner_ID: user.ID }    elsif user.admin?      can :manage,:all    end  endendclass User < ActiveRecord::Base  enum role: [ :revIEwer,:admin ]end
总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何使用cancancan?全部内容,希望文章能够帮你解决ruby-on-rails – 如何使用cancancan?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1284326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存