rails中 save与 save! 和 create与 create!的区别

  差别在于报告错误的方式。

1、save
如成功,返回true,
如失败,返回nil。

2、save!
如成功,返回true,
如失败,返回异常。

3、create
无论成功或失败,均返回ActiveRecord。
(想知道是否成功,得自己另做查询。)

4、create!
如成功,返回true,
如失败,返回异常。

注:
用save错误结果会显示给用户,想自己编程处理错误,就用save!捕获异常做处理。
begin
  order.save!
rescue RecordInvalid => error
  #validation filed
end

原文地址:https://www.cnblogs.com/yanmiao/p/2501318.html