나는 워드 프로세서에서이자동으로 예외를 발생시키는 대신 before_add 연관 콜백을 사용하여 건너 뛰기 하시겠습니까?
has_many :roles, :before_add => :enforce_unique
def enforce_unique(assoc)
false if exists? assoc
end
을 할 노력하고있어 : "는 before_add 콜백 예외가 발생하면 개체가 컬렉션에 추가되지 않습니다." 다음은 추가를 방지하지 않는 거짓 위의 사용, 그래서 나는이 작업을 수행하도록 강요하고 있습니다 :
def enforce_unique(assoc)
raise if exists? assoc
end
이 방법, 그것은 추가되지 않는 것은 사실이지만, 그것은 또한 처리 할 수있는 예외를 발생 . 별로 유용하지 않아요. FALSE를 반환하면 저장 (또는 추가)을 방지하지만 예외를 발생시키지 않는 일반 AR 콜백 before_save와 같이 동작하는 것이 더 좋을 것입니다.
위의 경우 위의 경우 자동으로 assoc을 추가하지 않는 것이 좋습니다. 이것을 할 수있는 방법이 있습니까? 나는 무엇인가 놓친다? 아니면 여기서 유일한 예외를 제기하고 있습니까?