나는에서 문서를 읽게 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