Rails:CanCanCan可以限制资源创建的数量(Rails: CanCanCan to limit number of resource creation)

系统教程 行业动态 更新时间:2024-06-14 16:55:57
Rails:CanCanCan可以限制资源创建的数量(Rails: CanCanCan to limit number of resource creation)

我正在使用CanCanCan gem作为我的rails应用程序。 我想根据用户订阅计划限制page创建的数量。 例如,具有basic计划的用户最多只能创建10页。 我怎样才能实现它? 我试图通过使用以下规则来引入限制:

can :create, :pages if user.subscription_plan == "basic" && Page.count <= 10

但是一旦我的页码超过10,它就会阻止访问pages控制器上的每个控制器。 我在pages控制器上使用以下代码。

before_action :authorize_user . . . def authorize_user authorize! :create, :pages rescue => e redirect_to admin_path, :alert => "You've reached your page creation limit." end

如何最好地达到我所要求的效果?

I'm using CanCanCan gem for my rails app. I want to limit number of page creation based on user subscription plan. e.g. user having basic plan can only create maximum of 10 pages. How can I achieve it? I've tried to introduce a limitation by using following rule:

can :create, :pages if user.subscription_plan == "basic" && Page.count <= 10

But as soon as my page number exceeds 10 it block access to every controller on pages controller. I'm using following code on pages controller.

before_action :authorize_user . . . def authorize_user authorize! :create, :pages rescue => e redirect_to admin_path, :alert => "You've reached your page creation limit." end

How best to achieve my required affect?

最满意答案

您的之前操作将针对控制器中的每个操作触发。 将其限制为“创建”操作:

before_action :authorize_user, only: :create

Your before action is triggered for every action in the controller. Limit it to 'create' action:

before_action :authorize_user, only: :create

更多推荐

本文发布于:2023-04-10 11:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/8b46768d6a7a35c11af548a96a63d0b9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数量   资源   CanCanCan   Rails   creation

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!