Запретить удаление записей в рельсах - PullRequest
0 голосов
/ 13 октября 2019

В обратных вызовах уничтожения мы проверяем использование этой конкретной записи и ограничиваем удаление записи при ее использовании.

Модель

before_destroy :check_usages


def check_usages

  # Usage checking logics
 throw :abort if usage
end

В контроллере

def destroy

  if record.destroy
   # Success response
  else
   # error response
  end
end

В одном из моих случаев мне нужно удалить несколько записей.

Если я использую,

records.destroy_all

Эта используемая запись не удаляется. Это нормально

    def destroy

      ActiveRecord::Base.transaction do 
        records.destroy_all
        error_messages = []
        records.each do |record|
          error_messages << record.errors.full_messsages if record.errors.present?

 raise ActiveRecord::Rollback if error_messages.present?
        end
      end
   end

Это то, что я пытаюсь сделать, и я хочу знать, есть ли какой-либо другой лучший способ получить и вернуть ошибки и предотвратить их удаление после возникновения ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...