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.

Reply via email to