Рельсы: вокруг * обратные вызовы



Я прочитал документацию по адресу http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html, но не понимаю, когда around_* обратные вызовы запускаются в отношении before_* и after_*.



любая помощь очень ценится.



спасибо.

474   2  

2 ответов:

around_* обратные вызовы вызываются до действие, а затем, когда вы хотите вызвать само действие, вы yield к нему, затем продолжить выполнение. Вот почему он называется around

порядок такой:before,around,after.

Итак, типичный around_save будет выглядеть так:

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

обратный вызов 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

Comments

    Ничего не найдено.