繁体   English   中英

update_attributes没有给出错误Ruby on rails

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM