Basically because http://en.wikipedia.org/wiki/Null_Object_pattern. It's 
often the case that systems have to deal with "N" possible changes, where N 
is between 0 and 1. e.g. I might have a procedure to gradually build up a 
list of things to change, starting with {} and appending to it if certain 
conditions are met. It wouldn't be an exceptional situation if none of 
those conditions are met.

On Thursday, 7 May 2015 18:24:50 UTC+1, Rafael Mendonça França wrote:
>
> Are not both cases invalid input? Why should we accept empty hashes?
>
> On Thu, May 7, 2015 at 2:14 PM Michael Mahemoff <[email protected] 
> <javascript:>> wrote:
>
>> The following will return an error:
>>
>>     > Post.first.update_columns({})
>>     ArgumentError: Empty list of attributes to change
>>
>> I think that's surprising, because I see update_columns as an analogue to 
>> update_attributes, just without callbacks happening. An empty hash for the 
>> latter is fine:
>>
>>     > Post.first.update_attributes({})
>>     true
>>
>> So shouldn't update_columns support an empty hash too? In the rare cases 
>> where callbacks should be avoided and this is needed, it would save having 
>> to make a special-case check to prevent the error.
>>
>> -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at http://groups.google.com/group/rubyonrails-core.
>> For more options, visit 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