[ruby-on-rails] Ruby on Rails 콜백, : before_save와 : before_create의 차이점은 무엇입니까?
당신은 자세히 설명 할 수 무엇 :before_save
과 :before_create
루비 콜백은 레일, 그리고 그들이 레일 검증하고 관계에? :before_save
또는 이후에 유효성 검사가 발생합니까 :before_create
?
답변
Rails의 작성 작업에는 데이터베이스 작업 전 6 개의 콜백이 있고 이후에는 2 개의 콜백이 있습니다. 순서대로 다음과 같습니다.
before_validation
before_validation_on_create
after_validation
after_validation_on_create
before_save
before_create
데이터베이스 삽입
after_create
after_save
업데이트 작업은 어디에서나 읽기 update
대신 INSERT 대신 UPDATE 를 제외하고 정확히 동일한 세트를 갖습니다 .create
이것으로 before_save
and 및 before_create
콜백 전에 유효성 검사가 수행되고 있음을 알 수 있습니다 .
이 before_save
약간 전에 발생합니다 before_create
. 내가 아는 한, 그들 사이에는 아무 일도 일어나지 않습니다. before_save
업데이트 작업에서도 실행 되지만 before_create
Creates에서만 실행됩니다.
답변
before_save
객체가 저장 될 때마다 호출됩니다. 새로운 객체와 기존 객체의 경우 (활동 작성 및 업데이트)
before_create
창조하기 전에 만. 새로운 객체에 대해서만 (액션 생성)
답변
before_create
vs before_save :on => :create
때로는 콜백 순서에주의해야합니다
자세한 내용은 여기를 참조하십시오 :
http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/