Generally nearly all of the Jr. devs I work with know this, this is very basic to the early learning process of working with Rails.
Most code I see uses the if @foo.save … else … end style in almost all cases and does flow control based on the return value of save. -Jason > On Jun 22, 2015, at 5:39 PM, Ryan Bigg <[email protected]> wrote: > > Changing this method's name reeks of bikeshedding. > > Any one with more than a day's worth of Rails experience knows the difference > between these two methods and how to use them. > > In my experience, the return value for save is almost always checked. > > If we deprecate save and then have only save!, you would be encouraging the > use of exceptions as flow control and that's well-known as a coding smell. > > > > On 23 Jun 2015, at 00:27, Rafael Mendonça França <[email protected] > <mailto:[email protected]>> wrote: > >> I think the documentation is very clear about this: >> >> Saves the model. >> If the model is new a record gets created in the database, otherwise the >> existing record gets updated. >> By default, save always run validations. If any of them fail the action is >> cancelled and save returns false. >> If it is not we should fix the documentation but for me it is not a good >> idea to rename save to try_save. The Rails conventions for bang methods are >> clear. >> >> >> >> On Mon, Jun 22, 2015 at 11:24 AM pseidemann <[email protected] >> <mailto:[email protected]>> wrote: >> hello, >> >> currently in rails you have two methods to save a record: `save` and `save!`. >> I think `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? >> >> --- >> >> post transferred from https://github.com/rails/rails/issues/20662 >> <https://github.com/rails/rails/issues/20662> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <mailto:[email protected]>. >> To post to this group, send email to [email protected] >> <mailto:[email protected]>. >> Visit this group at http://groups.google.com/group/rubyonrails-core >> <http://groups.google.com/group/rubyonrails-core>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <mailto:[email protected]>. >> To post to this group, send email to [email protected] >> <mailto:[email protected]>. >> Visit this group at http://groups.google.com/group/rubyonrails-core >> <http://groups.google.com/group/rubyonrails-core>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at http://groups.google.com/group/rubyonrails-core > <http://groups.google.com/group/rubyonrails-core>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.
