我有一个我在Rails 3中使用Formtastic构建的表单。表单提交到ClientsController的#create操作,如果保存成功,控制器将重定向到“谢谢”页面。如果保存不成功,则会重定向到嵌入表单的页面。我希望能够在表单页面上内联显示验证错误,但在重定向回到该页面后,errors对象将返回空白。
我该怎么办?我可以在表单上显示验证错误?
以下是控制器的代码。
if client.save && event.save
redirect_to "/thank-you"
else
redirect_to :back
end
其他一些细节:我使用的是RefineryCMS,因此没有关于表单所在页面的视图,因此我无法render
该视图。
答案 0 :(得分:1)
为什么不:
render :action => 'name-of-the-view-the-form-is-in'
而不是redirect_to :back
?
答案 1 :(得分: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]