有時我看到了!保存後,和其他一些有效的記錄方法...有什麼區別?rails 3 - widget.save和widget.save的區別!
回答
使用的一般模式或約定!在rails中的方法的末尾指示該函數可能會引發異常,而non-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
非常有幫助謝謝! – jpwynn 2011-03-11 17:41:18
按照慣例,方法名稱中唯一的'!'意味着它是一個潛在的危險操作。 「危險」的常見情況是會引發異常,或者會自行修改結果。但也有許多其他不太常見的情況。 – 2011-03-11 17:45:32
save
如果記錄無法保存(例如驗證錯誤)將返回false。
save!
如果記錄無法保存,將引發異常。使用save!
當你很確定它應該保存沒有問題,如果它不,那麼它是一個非常大的錯誤和一個例外是適當的。
謝謝你這個......也給了它一個投票。 – jpwynn 2011-03-11 17:42:27
- 1. Rails 3和Rails 4有什麼區別?
- 2. Rails 3:Relation.count和Relation.ount.count之間的區別
- 3. Rails 3連接vs Rails 2的區別
- 4. 區別(3)中[[]] * 3和[[]]之間的區別]
- 5. Clojure(3)和3之間的區別
- 6. Rails 3和3.2之間有很大的區別嗎?
- 7. 3/2和-3/2有什麼區別?
- 8. 在Rails 3中,=和assign_attributes之間有區別嗎?
- 9. ASP.NET MVC 3和4之間的區別?
- 10. TileWMS和WMTS在openlayers 3中的區別?
- 11. ASP.NET MVC 1和3之間的區別
- 12. @Component和@Configuration在Spring 3中的區別
- 13. varchar(3)和varchar(300)之間的區別
- 14. jquery-rails和jquery-ujs之間的區別
- 15. Rails中@ list.tasks和@list.tasks.all的區別
- 16. Rails:<%=和<%==之間的區別?
- 17. Rails 2.2和2.3.5之間的區別? ActionMailer.Utils
- 18. Rails 2.3和Rails 3.2'周'方法的區別
- 19. flex mxml和actionscript-3有什麼區別?
- 20. IE7和Firefox 3渲染區別
- 21. libcurl.dylib和libcurl.3.dylib有什麼區別?
- 22. col-lg-4和col-md-3和col-xs-3有什麼區別?
- 23. rails in_groups和in_groups_of有什麼區別?
- 24. Rails中index.html和index.html.erb有什麼區別?
- 25. Ruby on Rails和Grails有什麼區別?
- 26. 有什麼區別:to和=> in rails
- 27. Ruby和Ruby on Rails有什麼區別?
- 28. Rspec和Rspec-Rails Gem有什麼區別?
- 29. Bootstrap和Rails有什麼區別?
- 30. Rails 3.如何獲得兩個數組之間的區別?
可能的重複[保存/保存的內容!做什麼?](http://stackoverflow.com/questions/1997201/what-exactly-does-save-save-do) – 2011-03-11 09:07:59