4
반복되는 경우 has_many 요소의 저장을 (정상적으로) 취소하려고합니다. 이것이 내 뜻입니다 :before_add 연관 콜백에서 저장을 취소하려면 어떻게합니까?
class AdmininstratorRole < ActiveRecord::Base
has_many :permissions, before_add: :avoid_repetition
def avoid_repetition(permission)
raise "Repeated Permission" if self.permissions.where(klass: permission.klass, action: permission.action).count > 0
end
end
관련 콜백이 아니면 거짓을 반환하여 저장을 취소 할 수 있습니다. 그러나 연결된 콜백 이후로 나는 here으로 설명 된대로 절약을 취소하기 위해 예외를 발생시켜야합니다. 문제는 그 예외로부터 정상적으로 복구하는 방법을 모른다는 것입니다.
어떤 아이디어 ???