我有一个使用Rails 3中的Formtastic构建的表格3.该表格提交给客户端controller的#Create动作,如果保存成功,则控制器将重定向到“谢谢”页面。如果保存未成功,它将重定向到嵌入表单的页面。我希望能够在表单页面上显示验证错误,但是在重定向回到该页面后,错误对象回到空。

我该怎么办,我可以在表单上显示验证错误?

这是控制器的代码。

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

一些其他细节:我正在使用RefineryCMS,因此该页面所在的页面没有视图,因此我不能 render 风景。

有帮助吗?

解决方案

您需要将错误保存到会话中。


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

现在,您可以使用Anywere访问错误对象 session[:client_create_errors]

其他提示

为什么不:

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

而不是 redirect_to :back ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top