2010-12-03 89 views
0

我使用Formtastic在Rails 3中構建了一個表單。表單提交給ClientsController的#create動作,如果保存成功,控制器將重定向到「謝謝」頁面。如果保存不成功,它將重定向到嵌入表單的頁面。我希望能夠在表單頁面上顯示內聯驗證錯誤,但是在重定向回該頁面之後,錯誤對象會回到空白狀態。Rails 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 2010-12-03 17:20:26