2010-12-03 5 views
0

레일스 3에서 Formtastic을 사용하여 작성한 폼이 있습니다. 폼이 ClientsController의 #create 액션에 제출하고 저장에 성공하면 컨트롤러는 "감사합니다"페이지로 리디렉션됩니다. 저장에 실패하면 양식이 포함 된 페이지로 리디렉션됩니다. 양식 페이지에서 유효성 검사 오류를 인라인으로 표시 할 수 있지만 해당 페이지로 리디렉션 한 후에 오류 개체가 다시 비어 있습니다.레일 3에서 폼 유효성 검사 오류가 발생했습니다

양식에 유효성 검사 오류를 표시하려면 어떻게해야합니까?

다음은 컨트롤러의 코드입니다.

if client.save && event.save 
    redirect_to "/thank-you" 
else 
    redirect_to :back 
end 

일부 자세한 내용 : 양식이 페이지에 대한 뷰가 없다, 그래서 나는 RefineryCMS를 사용하고, 따라서 나는하지 render보기를 할 수 있습니다.

답변

1

오류를 세션에 저장해야합니다.


if client.save && event.save 
    session[:client_create_errors] = nil 
    redirect_to "/thank-you" 
else 
    session[:client_create_errors] = client.errors 
    redirect_to :back 
end 

지금 액세스 할 수있는 오류는 session[:client_create_errors]

1

왜 :

render :action => 'name-of-the-view-the-form-is-in' 

대신 redirect_to :back?

+0

미안 해요, 내가 RefineryCMS를 사용하고 있음을 언급 했어야을 사용 anywere에서 개체를, 그래서 페이지는 데이터베이스에 저장됩니다. 페이지에 대한보기가 없습니다. – picardo