Leyendo [1] descubrí la diferencia entre save y save! en ActiveRecord:
@user #=> ActiveRecord Instance @user.save # También podría ser: @user.update_atributes(params) @user.save! # => @user.update_atributes!(params)
La 2da opción (línea 3) llama al método save bang (!) [2] a diferencia de la línea 2 que llama al save común. ¿Cuál es la diferencia? La respuesta viene de la mano de las validaciones (validations). Si @user no cumple con las validations, el save común devolverá false, mientras que save! levantará una excepción (ActiveRecord::RecordInvalid) [3].
Por otro lado, los métodos: create y update devuelven el mismo objeto si se actualizó o no la base de datos. Entonces cómo vamos a saber si un registro es válido para ser guardado, pues con el método: valid? O su gemelo malvado: invalid?
¿Cómo saltearnos las validaciones?
@objeto.save(false)
[1] http://guides.rubyonrails.org/activerecord_validations_callbacks.html
[2] https://wincent.com/wiki/Ruby_%22bang%22_methods
[3] http://apidock.com/rails/ActiveRecord/Base/save!

