0

我在 Rails 3 中有一个 web 应用程序,我希望用户能够在首页上注册。首页由a控制,PagesController注册过程由控制RegistrationController(我使用Devise)。通过在首页添加注册表单我没有问题,并且当您正确提交表单时一切正常。我刚刚将表单呈现为部分:

<%= render "/users/registrations/form" %>

以我的形式

<%= simple_form_for(@user, :url => registration_path(@user)) do |f| %>

但是,如果用户尝试提交错误(例如缺少信息),用户会被重定向到标准注册页面。错误显示正常,但我希望用户留在首页,并在那里显示错误消息。

所以首先我需要再次呈现首页,当注册过程失败时,我希望显示错误消息,但我仍然希望标准注册页面正常工作。我怎样才能以最好的方式做到这一点,并且仍然保持干燥?

希望你能帮我

4

2 回答 2

1

我认为您需要的是在设计登录失败后自定义要重定向到的页面。

这在这个问题中得到了回答:登录失败后设计重定向

如果您有两个带有注册表单的不同页面,并且您想根据它来区分重定向,您可以尝试修改链接中提到的 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
于 2013-05-09T16:18:54.877 回答
0

您可以简单地在单独的部分中取出您的“错误消息 div”,然后将其呈现在它们两者中。

于 2013-05-09T18:33:01.310 回答