Rails: CanCanCan для ограничения количества создаваемых ресурсов
Я использую драгоценный камень CanCanCan для моего приложения рельсов. Я хочу ограничить количество 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
Как лучше всего добиться моего требуемого аффекта?
1 ответ
Решение
Ваше предварительное действие запускается для каждого действия в контроллере. Ограничьте это, чтобы создать действие:
before_action :authorize_user, only: :create