Задать вопрос
  • Как использовать has_many :posts, dependent:?

    @vladson4ik
    В данном случае я бы рекомендовал не использовать исключения для управления. Более того, для Вашей задачи больше подойдет параметр :restrict_with_error
    В исходниках рельсы:
    when :restrict_with_error
              unless empty?
                record = klass.human_attribute_name(reflection.name).downcase
                owner.errors.add(:base, :"restrict_dependent_destroy.many", record: record)
                false
              end
    
            else

    В этом случае вы как обычно делаете
    if @user.destroy
      ...
    else 
    ....
    end

    Есть еще вариант использовать before_destroy директиву, и либо делать там явную проверку, либо бросать исключение в явном виде. Главное в негативном сценарии не забыть вернуть false.
    Ответ написан
    Комментировать