在Rails的另一个页面上显示验证错误
问题描述:
我在Rails 3中有一个Web应用程序,我希望用户能够在FrontPage上注册。首页由PagesController
控制,注册过程控制在RegistrationController
(我使用设计)。我在首页添加注册表单并没有任何问题,并且当您正确提交表单时,一切都正常。我刚才呈现形式为部分:(例如缺少信息)在Rails的另一个页面上显示验证错误
<%= render "https://stackoverflow.com/users/registrations/form" %>
并在窗体我有
<%= simple_form_for(@user, :url => registration_path(@user)) do |f| %>
但是,如果用户尝试与错误提交,将在用户被重定向到标准注册页面。错误显示正常,但我希望用户留在首页,并显示错误消息。
所以首先我需要再次渲染的FrontPage,当注册过程失败,我想显示错误消息,但我还是想标准的注册页面通常喜欢的工作。我怎样才能做到这一点,并保持干爽?
希望你能帮助我
答
我认为你需要的是定制页面有一项登录失败后,被重定向到。 Devise redirect after login fail
如果你有注册表单两个不同的页面,你要区分取决于重定向你可以尝试修改在链接中提到的CustomFailure类:
这在对这一问题的回答如下:
def redirect_url
if URI(request.referer).path == your_path_for_your_frontpage
your_path_for_your_frontpage
else
your_standard_path
end
end
答
你可以简单地采取了在一个单独的部分你的“错误消息格”,只是呈现在他们两个。
谢谢,但我仍然希望正常注册页面正常工作。所以我必须测试注册表单提交请求来自哪里? – jokklan 2013-05-09 16:22:35
那么你有两个注册页面可以这么说吗? – Galen 2013-05-09 16:25:46
@jokklan我编辑了答案,以防万一你有两个注册页面 – Galen 2013-05-09 16:32:38