2016-02-29 40 views
1

我有以下代碼update_attributes方法不給錯誤的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: Duplicate entry '[email protected]'

但據我所知。它應該是一種我可以得到像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等於{}

回答