Rails: CanCanCan 限制创建资源的数量

Rails: CanCanCan to limit number of resource creation

我正在为我的 rails 应用程序使用 CanCanCan gem。我想根据用户订阅计划限制 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

如何最好地达到我需要的影响力?

控制器中的每个动作都会触发您的前动作。将其限制为 'create' 操作:

before_action :authorize_user, only: :create