2011-02-26 4 views
0

내 foo 모델에서 여러 검증을 실행 중입니다. 여기에 내가 만들고 수정 작업을 처리하고 방법입니다다시로드 한 후 유효성 검사 오류 메시지를 유지하는 방법?

if @foo.update_attributes(params[:foo]) 
    #party time 
else 
    @foo.reload #here is the issue 
    render :action => "new" #or edit 
end 

가 나는 관련이없는 자바 스크립트를 실행하는 기본 양식 값을 사용하고 있기 때문에 속성을 다시로드해야합니다. 문제는 속성을 다시로드하면 분명히 @ foo.errors가 손실된다는 것입니다. 내가 새 변수를 다시로드 할 수있는 방법이 있습니까? 나쁜 양식 제출을 막기 위해 자바 스크립트를 사용하는 것보다이 방법을 선호합니다. 감사!

답변

1

재로드 방법은 분명히 아닙니다. 다음을 수행 할 수 있습니다. 1. 값을 되돌릴 방법을 정의하십시오. 2. 오류를 저장하고 을 다시 할당하십시오. 3. 새로로드 된 인스턴스의 @foo에 속성을 병합하십시오.

이러한 솔루션은 모두 해킹되어 권장되지 않습니다. 내가 너라면, 일이 어떻게 돌아가는지 다시 생각해 볼거야.

+0

내 전체 앱에 오신 것을 환영합니다. 감사. –

관련 문제