如果电子邮件唯一性验证失败,如何重定向到login_path?

时间:2011-12-02 16:44:13

标签: forms validation view ruby-on-rails-3.1

我正在创建我的第一个Rails和MVC应用程序。这是我的婚礼客人创建他们的RSVP的网站。

我有一个深层嵌套的表单。一个RSVP has_one用户和has_many来宾。

此表单一次创建用户,RSVP和来宾。还有一个通过login_path编辑现有RSVP的链接。

我在用户模型上有validates_uniqueness_of:电子邮件。如果用户在创建新RSVP时尝试创建新RSVP,我想重定向到login_path,即:email:uniqueness validation失败。

如果:email:uniqueness validation失败,我该如何重定向到login_path?

1 个答案:

答案 0 :(得分:0)

如果该电子邮件的唯一验证失败,则需要在控制器操作中进行测试,如果是这种情况,则需要重定向。也就是说,我不确定是否有更好的方法来了解特定字段的某个验证是否因为比较错误消息而失败,如下所示:

if @user.save
  # do success actions
else
  if @user.errors[:email] == 'has already been taken' # ugh
    respond_to |format|
      format.html { redirect_to login_path(email: @user.email) }
    end
  else
    # handle other errors
  end
end
相关问题