[RUBY-ON-RAILS] 어떻게 액티브 콜백을 건너 뛰려면? [복제]
RUBY-ON-RAILS어떻게 액티브 콜백을 건너 뛰려면? [복제]
이 같은 모델을 가지고
class Vote < ActiveRecord::Base
after_save :add_points_to_user
.....
end
어떻게 든 저장할 때 add_points_to_user를 호출 건너 모델을 강제 할 수 있습니까? 액티브 # 파괴 대 아마도 액티브 번호 같은 것을 삭제?
해결법
-
==============================
1.레일이 들어 있지만 3 당신이 사용할 수 있습니다 레일 :
레일이 들어 있지만 3 당신이 사용할 수 있습니다 레일 :
object.send(:create_without_callbacks) object.send(:update_without_callbacks)
-
==============================
2.레일 3의 경우, ActiveSupport :: 콜백 당신에게 필요한 제어 할 수 있습니다. 난 그냥 필요한 일반적으로 바람직하지-콜백을 일축 할 수있는 데이터 통합 시나리오에서 같은 도전에 직면했다. 당신은 reset_callbacks EN-한꺼번에, 또는 사용 skip_callback는 다음과 같이 신중하게 비활성화 할 수 있습니다 :
레일 3의 경우, ActiveSupport :: 콜백 당신에게 필요한 제어 할 수 있습니다. 난 그냥 필요한 일반적으로 바람직하지-콜백을 일축 할 수있는 데이터 통합 시나리오에서 같은 도전에 직면했다. 당신은 reset_callbacks EN-한꺼번에, 또는 사용 skip_callback는 다음과 같이 신중하게 비활성화 할 수 있습니다 :
Vote.skip_callback(:save, :after, :add_points_to_user)
..after 당신이 투표 인스턴스에서 작동 할 수있는 : add_points_to_user 억제
-
==============================
3.다음은, 레일 (2)에 적용되는 3 레일과 레일 4 :
다음은, 레일 (2)에 적용되는 3 레일과 레일 4 :
http://guides.rubyonrails.org/v3.2.13/active_record_validations_callbacks.html#skipping-callbacks
신중하게 고려하지 않고 그들을 사용하는 위험한 이유를 설명, 콜백을 건너 방법의 목록을 제공합니다. 크리에이티브 커먼즈 저작자 표시 - 동일 조건 변경 허락 3.0 라이선스의 규정에 따라 여기 재판.
-
==============================
4.이것은 당신의 검증을 생략 할 것이다 :
이것은 당신의 검증을 생략 할 것이다 :
vote.save(:validate => false)
여기에 더 많은 정보
당신의 콜백 및 검증을 생략하려면 V (3.1), 또는 update_all update_column 사용할 수 있습니다
vote = Vote.first vote.update_column(:subject, 'CallBacks')
Aparentlly 이것은 단지 액티브 3.1와 함께 작동
또는:
Vote.where('id = ?', YourID).update_all(:subject => 'CallBacks')
결국 당신은 또한 내가 마지막으로 옵션이이 모든 것을 건너 뜁니다 :
execute "UPDATE votes SET subject = 'CallBacks' WHERE id = YourID"
OK 마지막은 그렇게 꽤 아니다.
from https://stackoverflow.com/questions/1342761/how-to-skip-activerecord-callbacks by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 레이크 작업에 RAILS_ENV를 강요하는 걸까? (0) | 2020.02.14 |
---|---|
[RUBY-ON-RAILS] 레일 3 개 양식을 제출에서 제거 "UTF8 = ✓" (0) | 2020.02.14 |
[RUBY-ON-RAILS] 고안 비밀 키가 설정되지 않았습니다 (0) | 2020.02.14 |
[RUBY-ON-RAILS] 정의되지 않은 메서드 '구성': 오류 발사는 서버를 레일 (0) | 2020.02.14 |
[RUBY-ON-RAILS] 여러 foreign_keys와 모델 has_many 레일 (0) | 2020.02.14 |