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

时间:2013-05-09 16:13:42

标签: ruby-on-rails ruby-on-rails-3 devise

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

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

以我的形式

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

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

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

希望你能帮助我

2 个答案:

答案 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”,然后只在两个部分中呈现它。