ActiveRecord 如何验证一条记录已成功保存到数据库中?

run*_*nub 5 activerecord ruby-on-rails ruby-on-rails-4 ruby-on-rails-5 ruby-on-rails-6

我经历了惨痛的教训

model.save
Run Code Online (Sandbox Code Playgroud)

仅当记录通过验证时才会返回true,如果在数据库端添加/更新模型有任何错误,它仍然返回true。因此使用

 if model.save
       render 'yayy'
 else
       render 'error'
 end
Run Code Online (Sandbox Code Playgroud)

不可靠。

是否有任何方法具有相同的功能,但仅在数据库成功更新时才返回 true,或者验证记录是否已成功保存在数据库中的最佳方法是什么。

(如果重要的话我使用 postgres 作为数据库)

And*_*eko 4

查看ActiveRecord::Persistence

除了其他方法之外,还有new_record?persisted?可能正在寻找的方法。