2013-08-29 6 views
0

유효성 검사 후 오류를 표시하고 :same 페이지로 돌아갑니다. 양식의 일부 필드는 이미 채워져 있으므로 오류 메시지를 표시하는 동안 해당 필드를 채우고 싶습니다. 여기 내 컨트롤러 코드는 다음과 같습니다페이지가 루비에서 페이지가 다시로드 될 때 채워진 값을 유지하는 방법

<%= form_for "user_signup" do |f|%> 
    <%= f.text_field :username %> 
<% end %> 

어떻게이 일을 다음과 같이

def signup 
    @user=User.new(params[:user]) 
    if @user.save 
    render "thanks", layout: "thanks" 
    else 
    flash[:notice] = "Unable to create an user, user name already exists. Try again!" 
    render "signup", layout: "signup" 
    end 
end 

내보기 코드는?

답변

0

디자인이 잘못되었습니다. 적어도 두 가지 조치가 있어야합니다. 하나는 양식을 표시하고 다른 하나는 오브젝트를 작성하는 것입니다. 이

create 실패
def signup 
    @user = User.new 
end 

def create 
    @user=User.new(params[:user]) 
    if @user.save 
    render "thanks", layout: "thanks" 
    else 
    flash[:notice] = "Unable to create an user, user name already exists." 
    render "signup", layout: "signup" 
    end 
end 

, 가입 템플릿을 렌더링 할 것처럼

는 템플릿의 @user 인스턴스는 잘못된 충전재로 실패로 대체 될 것입니다, 당신은 모든 충전재가 유지 볼 수 있습니다.

0

컨트롤러에 값을 저장해야합니다 (예 : 해시).보기가 렌더링 될 때 해당 해시의 값을 입력하십시오. 일부 필드의 기본값을 원하면 비슷한 작업을 수행하십시오.

관련 문제