У меня есть пользователь и модель компании, как показано ниже.Модель компании имеет несколько проверок.
user.rb
after_create :create_tables!
def create_tables!
companies.create!(handle: "random_handle")
end
company.rb
before_destroy :check_for_presence_of_a_company!
def check_for_presence_of_a_company!
if user.companies.count <= 1
errors.add(:base, 'You cannot delete all of your companies.')
throw(:abort)
end
end
когда пользовательсоздает учетную запись в первый раз, когда я создаю для него компанию, используя after_create в модели пользователя и перед удалением компании он должен иметь хотя бы одну компанию.
Но проблема заключается в том, что пользователь пытается удалитьВ его аккаунте вышеприведенная валидация компании выдает ошибку.
Когда пользователь удаляет свою учетную запись, он должен пренебречь вышеуказанной проверкой company.rb .Как я могу достичь этого?Спасибо.
Редактировать
В user.rb я обновил
has_many :companies,dependent: :destroy
до
has_many :companies,dependent: :delete_all
Но company.rb
has_many :categories, dependent: :destroy
и показывает нарушает ограничение внешнего ключа ошибка.Обновление его с уничтожения на delete_all также не работает.