1

레일 4와 크롬을 사용하고 있습니다. 이 상황에서 다음과 같은 결과 :성공적으로 제출하고 돌아간 후에 유효성 검사 오류가 양식에 나타나는 이유는 무엇입니까?

  1. 후 입력을 수정하여 유효성 검사 오류 같은 형태
  2. 포스트 (. 즉, "이름은 비워 둘 수 없습니다")를 성공적으로 발생 형태는
  3. 다시 브라우저를 히트 버튼을 1 단계에서 유효성 검사 오류는

왜 다시하는 방법 1 단계 팝업에서 유효성 검사 오류가이 문제를 해결하기 위해 않습니다 비어 있지 않은 값을 가지는 경우에도 입력 필드에 표시됩니다? 참고 : Turbolinks가 사용 중입니다. 그 이유가 될 수 있습니까? 난 당신이 업데이트/생성되는 기록과 관련된 오류를 다시 보내려면 다음과 같은 코드를 사용하는 추측

rails g scaffold Page name:string 

class Page < ActiveRecord::Base 
    validates :name, presence: true 
end 
Navigate to /pages/new 
Submit (errors appear on the form) 
Fillout the name 
Submit again (redirected to successfully created model) 
Hit the browser back button (the validation errors are there, and the field is filled with the last supplied value) 

답변

1

: 여기

는 복제하는 방법

def update 
    @post = Post.find(params[:id]) 
    if @post.update_attributes(post_params) 
    # your logic when successfull 
    else 
    render :edit, flash[:errors] = @post.errors 
    end 
end 

또는 이와 유사한 것. 여기 내 요점은 당신이 오류를 설정하는 다음 구문을 사용해야한다는 것이다 flash :

flash.now[:errors] = @post.errors 

(1)이 내용은 현재 페이지의 flash[:errors]사용할 수를 설정하고 바로 후에 삭제한다 이 페이지를 남겨.

(2) 또한보기의 끝에서 flash.clear을 사용할 수 있지만이 그것을 할하기로하고, 조금 "해키"보이는 방법이 아닙니다.


자원 :

+0

안녕하세요! 플래시 메시지를 사용하지 않고 표준 레일즈 양식과 모델 유효성 검사 만 사용합니다. – randomguy

+0

상황을 명확히하기 위해 예제를 추가했습니다! 감사! – randomguy