簡體   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