Я создаю приложение с несколькими арендаторами в Rails 4 с использованием Gem Apartment, это приложение на основе подписки и ограничивает количество пользователей по типу плана.Не знаете, как подойти с помощью Планирующего валидатора на пользователе, чтобы проверить, находится ли план на максимально допустимых пользователях Rails 4 Devise Invitable
У меня есть следующая валидация в моей модели плана (здесь я вложу все это), но я не уверен, как проверить это, чтобы администратор или владелец не могли пригласить пользователя, если учетная запись находится в макс. вместимость?
Plan.rb:
class Plan < ApplicationRecord
# Enum & Constants
enum plan_type: [:responder, :first_responder, :patrol_pro, :guardian]
USER_LIMITS = ActiveSupport::HashWithIndifferentAccess.new(
#Plan Name #Auth Users
responder: 6,
first_responder: 12,
patrol_pro: 30,
guardian: 60
)
# Before Actions
# Relationships
belongs_to :account, optional: true
# Validations
validate :must_be_below_user_limit
# Custom Methods
def user_limit
USER_LIMITS[self.plan_type]
end
def must_be_below_user_limit
if account.present? && persisted? && User.count < user_limit
errors[:user_limit] = "can not more than #{user_limit} users"
end
end
end
Функциональность мудрый Я хочу, чтобы убедиться, что владелец не может добавить пользователя, если количество пользователей для соответствующего счета более чем plan_type позволяет. если так, я хочу выслать сообщение с сообщением, пожалуйста, обновите ..
спасибо заранее .. Это проклятие моего существования !!
'account.present? && сохраняется? && account.users.count
Sravan
Вы должны проверить пользователей этой учетной записи, а не всех пользователей. – Sravan
В квартире у этого есть свой собственный shchema, поэтому, даже если бы я попытался найти все приложения для пользователей, я наклоняю –