나는 Tournament라는 모델을 가지고 있는데, has_many
엔트리. 토너먼트에는 reset_rankings
이라는 항목이 있습니다.이 항목은 모든 항목을 탐색하고 항목에 현재 얼마나 많은 지점이 있는지에 따라 각 항목의 current_rank
필드를 업데이트합니다. 이 traversal에서 업데이트하는 각 항목마다 entry.save
이라고 부릅니다.has_many 관계의 하위 항목을 어떻게 업데이트합니까?
이 방법은 메모리의 항목을 업데이트하는 것으로 보이지만, reload
토너먼트에서 current_rank
필드는 모두 reset_rankings
을 호출하기 전에 되돌려 놓았습니다.
reset_rankings
를 호출 한 후
tournament.save
를 호출하려고하지만 여전히 변화
내가 멍청한 짓을하고있는 중이 야 확신을 지속하지 못했지만, 내가 예상처럼 레일 마법이 작동하지 않습니다.
감사합니다. 도움이되었습니다. 유효성 확인으로 인해 저장에 실패했습니다. –
도와 줘서 기쁩니다. 많은 사람들이 저를 포함하여이 문제에 걸렸습니다. 유효성 검사는 생성 할 때마다, 저장 할 때마다 실행되도록 작성 될 수 있음을 기억하십시오. 또한 유효성 검사에서 "전문가 모드"또는 "재설정 모드"를 사용할 수 있습니다. 유효성 검사에서 인스턴스 변수의 값을 확인하십시오. 그런 다음 모델이 재설정 모드에있을 때만 인스턴스 변수를 설정하십시오. 기타. –