Saya telah membaca dokumentasi di http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html , tetapi tidak mengerti kapan around_*
callback dipicu sehubungan dengan before_*
dan after_*
.
Setiap bantuan sangat dihargai.
Terima kasih.
Saya telah membaca dokumentasi di http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html , tetapi tidak mengerti kapan around_*
callback dipicu sehubungan dengan before_*
dan after_*
.
Setiap bantuan sangat dihargai.
Terima kasih.
Jawaban:
around_*
callback dipanggil sebelum tindakan, lalu saat Anda ingin menjalankan tindakan itu sendiri, Anda yield
melakukannya, lalu lanjutkan eksekusi. Itulah mengapa disebutaround
Pesanan seperti ini: before
, around
, after
.
Jadi, tipikal around_save
akan terlihat seperti ini:
def around_save
#do something...
yield #saves
#do something else...
end
Callback around_ * dipanggil di sekitar aksi dan di dalam aksi before_ * dan after_ *. Sebagai contoh:
class User
def before_save
puts 'before save'
end
def after_save
puts 'after_save'
end
def around_save
puts 'in around save'
yield # User saved
puts 'out around save'
end
end
User.save
before save
in around save
out around save
after_save
=> true