Rails : around_ * 콜백


답변:


178

around_*콜백은 액션 이전 에 호출되고, 액션 자체를 호출하고 싶을 때 그 액션으로 이동 한 yield다음 실행을 계속합니다. 그래서around

순서는 다음과 같이 간다 : before, around, after.

따라서 일반적인 around_save것은 다음과 같습니다.

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

4
의미가 있으며 공식 Rails 가이드에 없습니다.
Dan S.

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 2014 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.