Rails: around_ * devoluciones de llamada


Respuestas:


178

around_*las devoluciones de llamada se invocan antes de la acción, luego, cuando desee invocar la acción en sí, acceda yielda ella y luego continúe la ejecución. Por eso se llamaaround

El orden es el siguiente: before, around, after.

Entonces, un típico around_savese vería así:

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

4
Tiene sentido y no está en las guías oficiales de Rails.
Dan S.

120

La devolución de llamada around_ * se llama alrededor de la acción y dentro de las acciones before_ * y after_ *. Por ejemplo:

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
Para mí, esta es la respuesta más esclarecedora . Gracias amigo.
Arup Rakshit
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.