我在用户模型中有一行在注册时验证电子邮件的以下内容
validates :email, presence: true,
uniqueness: { case_sensitive: false },
length: { maximum: 254 }
如果有错误,我会呈现带有错误消息的注册页面(“新”): 在控制器中:
if @user.save
redirect_to root_path
else
render 'new'
end
在视图中:
<% if @user.errors.any? %>
<div id="error_explanation">
<p><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</p>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
但是,如果用户输入的电子邮件地址不是唯一的,我想重定向到新页面。有什么办法可以做到这一点吗?如何修改控制器以针对这种特定类型的错误执行不同的操作?