인가 after_create및 after_save기능에 따라 같은?
계정 생성 후 사용자의 이메일로 작업을하고 싶습니다.
데이터베이스에 저장 될 때 그 작업을하고 싶습니다.
다음 중 사용하는 것이 더 좋습니다. after_create또는 after_save?
인가 after_create및 after_save기능에 따라 같은?
계정 생성 후 사용자의 이메일로 작업을하고 싶습니다.
데이터베이스에 저장 될 때 그 작업을하고 싶습니다.
다음 중 사용하는 것이 더 좋습니다. after_create또는 after_save?
답변:
after_save()
자주 저장하지 않는 모델을 저장해야 할 때 잘 작동합니다. 레코드를 자주 변경하는이 특정 예의 경우 다음을 사용하는 것이 좋습니다.
after_commit()
조치가 실행되기 전에 모델이 데이터베이스에 저장되었는지 확인하십시오 after_commit : calculate_credit_score
def calculate_credit_score
#Call a Cron job
end
after_commit하지만 이유는 설명하지 않습니다. 자세히 설명해 주시겠습니까? 참고 after_commit실행가 UPDAT 생성하고 파괴한다. 문서 : apidock.com/rails/ActiveRecord/Transactions/ClassMethods/…after_save 레코드를 삭제 한 후 실제로 cron_job을 호출하고 싶은 것과 같은 동작이 아닙니다 . 아니면 ops의 경우 삭제 된 사용자에게 이메일을 보내시겠습니까? 사용에주의after_commit
after_commitCRUD 작업에서 실행되므로 그의 경우 이메일이 자주 업데이트되면 특정 콜백에 대한 작업을 결합하는 것이 더 쉬울 것입니다. 제 경우에는after_commit : calculate_profile_update, on: :update
update_all는 다음을 포함한 어떠한 콜백도 호출하지 않는다는 점에 유의해야합니다.after_*