Рейки: зворотні звороти *


Відповіді:


179

around_*зворотні виклики викликаються до дії, потім, коли ви хочете викликати саму дію, ви yieldдо неї, потім продовжуєте виконання. Ось чому це називаєтьсяaround

Порядок виглядає наступним чином : before, around, after.

Отже, типовий around_saveбуде виглядати так:

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

4
Це має сенс і відсутнє в офіційних посібниках Rails.
Ден С.

120

Зворотний виклик around_ * викликається навколо дії та всередині дій before_ * та after_ *. Наприклад:

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
Для мене це найбільш яскрава відповідь. Дякую, друже.
Arup Rakshit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.