currently in rails you have two methods to save a record:
save is often used wrong because the return value is not always checked.
even the documentation is not very clear about the subtle different about the two methods. for
save the first sentence is:
Saves the model.
it’s not clearly mentioned there that it will not save the model at all when validation fails. so developers will introduce bugs when not always checking for the return value e.g. in delayed job methods or in rake tasks (or maybe even in controllers).
my proposal would be to deprecate the usage of
save and introduce a new method called
try_save which has the same implementation as the old
save method. this would make the implementation and the usage of the saving method more clear.
what do you think?