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

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

14
Für mich ist dies die aufschlussreichste Antwort. Danke Freund.
Arup Rakshit
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.