So I know the distinction between the bang (exclamation mark) and non-bang methods usually is whether the method will modify the object itself or return a separate modified obje
Hope this helps as well:
The bang versions (e.g. save!) raise an exception if the record is invalid. The non-bang versions don’t: save and update_attributes return false, create and update just return the objects.
Source: http://edgeguides.rubyonrails.org/active_record_validations.html#when-does-validation-happen-questionmark
Edit: Changed source to fix broken link