为什么在错误页面上设计显示Flash错误消息

时间:2018-10-28 00:32:03

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

我正在为我的应用程序使用devise,用户需要注册,因此devise具有一些验证功能,例如电子邮件的唯一性和密码长度

这是显示消息错误的代码

new.html.erb

<%= devise_error_messages! %>

这应该向用户显示错误验证,但这是设计显示它的方式,就像错误代码一样!

the screenshot is here

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

问题出在这一行:

@user.save!
如果验证失败,

save!方法将引发异常ActiveRecord::RecordInvalid。该异常导致服务器中断请求处理并显示调用堆栈。

要解决此问题,您需要改用save方法,而没有感叹号。例如:

if @user.save
  # user was saved successfully
else
  # validation failed, show devise error message
end