Muhammad Andriansyah pada 05 Agustus 2018

saya mau tanya mas tentang fungsi dari errors.add dan throw :abort itu apa ya, sudah nyari digoogle tapi masih belum ngerti

before_destroy :can_destroy?

  private

  def can_destroy?
    if model.something?
            errors.add(:base, "Can't be destroy because of something") 
      throw :abort 
  end
Agung Setiawan pada 07 Agustus 2018

errors.add itu buat ngasih error message di objek model yang ga lolos validasi Mas
Coba baca di sini https://guides.rubyonrails.org/active_record_validations.html#errors-base

Agung Setiawan pada 07 Agustus 2018

Terus yang throw :abort itu biar eksekusinya berhenti dalam artian ga dilanjut ke callback yang lain jika ada
https://blog.bigbinary.com/2016/02/13/rails-5-does-not-halt-callback-chain-when-false-is-returned.html