差别在于报告错误的方式。
1、save
如成功,返回true,
如失败,返回nil。
2、save!
如成功,返回true,
如失败,返回异常。
3、create
无论成功或失败,均返回ActiveRecord。
(想知道是否成功,得自己另做查询。)
4、create!
如成功,返回true,
如失败,返回异常。
注:
用save错误结果会显示给用户,想自己编程处理错误,就用save!捕获异常做处理。
begin
order.save!
rescue RecordInvalid => error
#validation filed
end