我在Rails 3中有一个web应用程序,我希望用户能够在首页上注册。首页由PagesController
控制,注册过程由RegistrationController
控制(我使用Devise)。我在首页上添加注册表单没有问题,当您正确提交表单时一切正常。我只是将表单渲染为部分:
<%= render "/users/registrations/form" %>
以我的形式
<%= simple_form_for(@user, :url => registration_path(@user)) do |f| %>
但是,如果用户尝试提交错误(例如,缺少信息),用户是否会被重定向到标准注册页面。错误显示正常,但我希望用户留在首页,并显示错误消息。
首先,我需要再次呈现首页,当注册过程失败时,我希望显示错误消息,但我仍然希望标准注册页面正常工作。我怎么能以最好的方式做到这一点,仍然保持干爽?
希望你能帮助我
答案 0 :(得分:1)
我认为您需要的是在设计登录失败后自定义要重定向到的页面。
在这个问题中回答了这个问题: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
答案 1 :(得分:0)
您可以简单地在单独的部分中取出“错误消息div”,然后只在两个部分中呈现它。