2009-08-28 2 views
2

나는 다음과 같은 관계를 가진 모델, 사람, 가지고있다 - 유효성 검증의 일부가 파괴 표시 한 경우 - 말아야어떻게 액세스 ActiveRecord :: AutosaveAssociation.marked_for_destruction? 상위 모델 내에서

has_many :distributions 

accepts_nested_attributes_for :distributions, :allow_destroy => true 

validate :distributions_must_total_100 

사용자 지정 유효성 검사가 현재 실패를하기 때문에 사람과 배포판이 저장되기 전에 그들은 여전히 ​​"배포본"(메모리에 있음, DB에 무엇이 있는지 전혀 신경 쓰지 않음) 속성에 나타납니다.

내 유효성 검사기 내에 ActiveRecord::AutosaveAssociation.marked_for_destruction?을 사용하여 파괴 될 배포판을 무시하고 싶습니다.

  1. 어떻게 그 방법에 도달합니까? Distribution (일반 레일스 모델)의 관계가 그 클래스와 어떤 관계가 있는지 잘 모르겠습니다.

  2. 끔찍한 부정확 한 해킹입니까? 조금 더러워 졌을 뿐이며 문제의 가장 정확한 해결 방법입니다.

나는 레코드가 실제로 파괴 용으로 표시되어 있는지 확인하기 위해 디버거에서 액티브 소스 코드를 통해 단계를했다 (즉 아닌 자바 스크립트 또는 양식 빌더 버그).

답변

0

배포판 인스턴스에서 marked_for_destruction?으로 전화하면 문제가 없습니다.

관련 문제