ActiveRecord의 다른 모든 before_save 콜백이 코드에서 실제로 그렇게 정렬되지 않으면 주어진 before_save 콜백이 실행되도록 보장 할 방법이 있습니까?레일 3 : before_save 콜백이 다른 코드보다 먼저 호출되는지 확인
일부 before_save 기능을 포함하는 외부 라이브러리를 작성하고 있지만 효과적이기 위해서는 다른 모든 라이브러리보다 먼저 호출해야합니다. 나는 그 주위를 돌아 다닐 수는 있지만, 정말로 원하지 않는 더러운 속성을 포기해야합니다!
- 편집 -
나는이 그 더러운 속성에 몰랐 모델의 퇴피 후 유지됩니다. 따라서 @ page.attribute_was는 around_save
의 yield
이후에도 계속 작동합니다.
감사합니다. Carl. 나는'around_save'를 사용하고'yield '앞에 코드를 넣으려고 시도했지만,'before_save'는 여전히 후에 호출되고 있습니다. 나는 그것을 해결할 수 없었다. 내일 확실히 ActiveModel :: Callbacks를보고 다시보고 할 것입니다. –
@JonHope 예, 실제로'around_save'를 사용한 적이 없습니다. 문서를 살펴보면 before_save 콜백 후에 항상 * 발생해야하지만 "주변"콜백은 조금 다르게 작동하므로 오해가있을 수 있습니다. 마지막 callback을'after_validation' 콜백으로 끝내고'before_save'를 남기고 싶은 콜백을 제외하고 모든 콜백을 시도해 볼 수도 있습니다. 사용자 정의 콜백도 작동하지만'after_validation'을 사용하면 작업량을 줄일 수 있습니다. –
Carl에게 감사드립니다. 불행히도 나는 드롭 인 솔루션으로 보석을 필요로하기 때문에 커스텀 콜백을 사용할 수 없다. 사람들이 콜백 코드를 변경할 수 없다. 내 생각에는 개체가 저장되기 전에 콜백 배열을 찾고 끝에 수동으로 광산을 추가하는 것입니다. 이 사람? –