繁体   English   中英

rails 3 - widget.save和widget.save之间的区别!

[英]rails 3 - difference between widget.save and widget.save!

有时我看到了! 保存之后,以及其他一些主动记录方法......有什么区别?

如果无法保存记录,则save将返回false(例如,验证错误)。

save! 如果无法保存记录,将引发异常。 使用save! 当你非常确定它应该保存没有问题,如果它没有那么它是一个非常大的bug和异常是适当的。

使用的一般模式或惯例! 在rails中的方法结束处指示函数可以引发异常,而非bang方法只返回一个值。

不抛出异常的后果允许您将返回值用作正常处理的一部分。

if obj.save
  # yay, it worked!
else
  # boo
end

请注意,这不是Ruby强制执行的规则,只是一种约定。 其他库(如String的标准库)具有返回操作结果的方法,而不是修改对象的值。

String s="Hello, world"
  s.gsub("world", "Joe")  # returns a new string object, leaving s alone
  s.gsub!("world", "Joe")  # modifies the value of s

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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