Rails: around_ * geri arama


Yanıtlar:


181

around_*geri aramalar eylemden önce çağrılır , ardından eylemin kendisini çağırmak istediğinizde, siz yieldbuna devam edin, sonra yürütmeye devam edin. Bu yüzden deniraround

Sipariş şöyledir: before, around, after.

Yani, tipik bir around_saveşuna benzer:

def around_save
   #do something...
   yield #saves
   #do something else...
end

4
Bu mantıklı ve resmi Rails kılavuzlarında yer almıyor.
Dan S.

123

Around_ * geri araması, eylem etrafında ve before_ * ve after_ * eylemlerinin içinde çağrılır. Örneğin:

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

14
Benim için bu en aydınlatıcı cevap. Teşekkürler arkadaşım.
Arup Rakshit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.