[ruby-on-rails] Rails : around_ * 콜백

나는에서 문서를 읽게 http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html을 하지만, 때 이해하지 못하는 around_*콜백이 관련 트리거 before_*after_*.

많은 도움을 주셔서 감사합니다.

감사.



답변

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


답변