[英]update_attributes not giving the errors Ruby on rails
我有以下代码
if user.update_attributes(user_params)
render json: user , status: "success"
else
render json: user.errors , status: "failed"
end
如果对象正确,它将更新值。 但是,假设电子邮件是重复的,则在else
情况下它不会消失。 而是引发异常。
ActiveRecord :: RecordNotUnique(Mysql2 :: Error:重复的条目'test@test.lo'
但就我而言。 这应该是一种我可以像user.errors.full_messages
那样的user.errors.full_messages
。
我尝试使用以下
if User.new(user_params).valid?
user.update_attributes(user_params)
render json: user , status: "success"
else
render json: user.errors , status: "failed"
end
它进入else
条件,但user.errors.messages
等于{}
您需要依赖模型级别的验证:
validates :email, uniqueness: true
如果您依赖数据库级别的约束进行验证,那么编写时将获得异常。 您可以捕获这些异常,然后尝试将它们转换为人类可读的错误消息,但这并不是Rails的工作原理。
如果要验证错误消息,请在模型中使用验证器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.