2010-12-03 68 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