Rails: around_ * callbacks


Risposte:


178

around_*i callback vengono richiamati prima dell'azione, quindi quando si desidera invocare l'azione stessa, si yieldfa clic su di essa, quindi si continua l'esecuzione. Ecco perché si chiamaaround

L'ordine è questa: before, around, after.

Quindi, un tipico around_savesarebbe simile a questo:

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

4
Ha senso e non è nelle guide ufficiali di Rails.
Dan S.

120

Il callback around_ * viene chiamato attorno all'azione e all'interno delle azioni before_ * e after_ *. Per esempio:

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
Per me questa è la risposta più illuminante . Grazie amico.
Arup Rakshit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.