[ruby-on-rails] Ruby on Rails 콜백, : before_save와 : before_create의 차이점은 무엇입니까?

당신은 자세히 설명 할 수 무엇 :before_save:before_create루비 콜백은 레일, 그리고 그들이 레일 검증하고 관계에? :before_save또는 이후에 유효성 검사가 발생합니까 :before_create?



답변

Rails의 작성 작업에는 데이터베이스 작업 전 6 개의 콜백이 있고 이후에는 2 개의 콜백이 있습니다. 순서대로 다음과 같습니다.

  1. before_validation
  2. before_validation_on_create
  3. after_validation
  4. after_validation_on_create
  5. before_save
  6. before_create

    데이터베이스 삽입

  7. after_create
  8. after_save

업데이트 작업은 어디에서나 읽기 update대신 INSERT 대신 UPDATE 를 제외하고 정확히 동일한 세트를 갖습니다 .create

이것으로 before_saveand 및 before_create콜백 전에 유효성 검사가 수행되고 있음을 알 수 있습니다 .

before_save약간 전에 발생합니다 before_create. 내가 아는 한, 그들 사이에는 아무 일도 일어나지 않습니다. before_save업데이트 작업에서도 실행 되지만 before_createCreates에서만 실행됩니다.


답변

before_save객체가 저장 될 때마다 호출됩니다. 새로운 객체와 기존 객체의 경우 (활동 작성 및 업데이트)

before_create창조하기 전에 만. 새로운 객체에 대해서만 (액션 생성)


답변

before_create vs before_save :on => :create

때로는 콜백 순서에주의해야합니다


자세한 내용은 여기를 참조하십시오 :
http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/


답변