0

我有一个在 Rails 3 中使用 Formtastic 构建的表单。该表单提交给 ClientsController 的 #create 操作,如果保存成功,控制器将重定向到“谢谢”页面。如果保存不成功,它会重定向到嵌入表单的页面。我希望能够在表单页面上显示验证错误,但是在重定向回该页面后,错误对象返回为空。

我该怎么做才能在表单上显示验证错误?

这是来自控制器的代码。

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

一些额外的细节:我正在使用 RefineryCMS,因此表单所在的页面没有视图,因此我无法render查看。

4

2 回答 2

1

为什么不:

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

而不是redirect_to :back?

于 2010-12-03T10:37:48.360 回答
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]

于 2010-12-06T21:08:20.667 回答