Schienen: um_ * Rückrufe

Antworten:

178

around_*Rückrufe werden vor der Aktion aufgerufen. Wenn Sie die Aktion selbst aufrufen möchten, rufen Sie yieldsie auf und setzen die Ausführung fort. Deshalb heißt esaround

Die Reihenfolge lautet: before, around, after.

Ein typisches around_savewürde also so aussehen:

def around_save
   #do something...
   yield #saves
   #do something else...
end
Jacob Relkin
quelle
4
Es macht Sinn und steht nicht in den offiziellen Rails-Guides.
Dan S.
120

Der Rückruf "around_ *" wird um die Aktion und innerhalb der Aktionen "before_ *" und "after_ *" aufgerufen. Beispielsweise:

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
Pan Thomakos
quelle
14
Für mich ist dies die aufschlussreichste Antwort. Danke Freund.
Arup Rakshit