在Rails的另一个页面上显示验证错误

问题描述:

我在Rails 3中有一个Web应用程序,我希望用户能够在FrontPage上注册。首页由PagesController控制,注册过程控制在RegistrationController(我使用设计)。我在首页添加注册表单并没有任何问题,并且当您正确提交表单时,一切都正常。我刚才呈现形式为部分:(例如缺少信息)在Rails的另一个页面上显示验证错误

<%= render "https://*.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 
+0

谢谢,但我仍然希望正常注册页面正常工作。所以我必须测试注册表单提交请求来自哪里? – jokklan 2013-05-09 16:22:35

+0

那么你有两个注册页面可以这么说吗? – Galen 2013-05-09 16:25:46

+0

@jokklan我编辑了答案,以防万一你有两个注册页面 – Galen 2013-05-09 16:32:38

你可以简单地采取了在一个单独的部分你的“错误消息格”,只是呈现在他们两个。