首页 > 解决方案 > 为什么要设计在错误页面中显示 flash 错误消息

问题描述

我为我的应用程序使用设计,用户需要注册,所以设计有一些验证,比如电子邮件和密码长度

这是显示消息错误的代码

新的.html.erb

<%= devise_error_messages! %>

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

截图在这里

哪里有问题 ??

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

解决方案


问题出在这一行:

@user.save!

节省!ActiveRecord::RecordInvalid如果验证失败,方法会抛出异常。该异常导致服务器中断请求处理并显示调用堆栈。

要修复它,您需要使用save方法而不是感叹号。例如:

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

推荐阅读