The issue here does not seem to be what everyone is addressing. If I
understood Anh correctly, when you run update_attribute X on a unsaved
model that has one attribute Y set in memory, calling reload will report
both X and Y as saved, so it seems to be a reload issue at first glance. I
will try and reproduce it shortly.


On Wed, Mar 12, 2014 at 3:13 PM, Rodrigo Rosenfeld Rosas <rr.ro...@gmail.com
> wrote:

> On 12-03-2014 08:23, Anh Nguyen wrote:
>
>> POLA http://en.wikipedia.org/wiki/Principle_of_least_astonishment
>>
>> Examples
>>
>> ```
>> # user.rb
>> class User < ActiveRecord::Base
>>   attr_accessible :name, :username
>>   validates :username, uniqueness: true
>> end
>>
>> user1 = User.create(name: 'Name 1', username: 'username1')
>> user2 = User.create(name: 'Name 2', username: 'username2')
>>
>> user1.username = 'username2'
>> user1.save # => false
>> user1.update_attribute(name: 'New Name')
>> user1.reload
>>
>> user1.username # => 'username2'
>> # update_attribute is expected to update the specified attribute, not
>> other ones. Thus it is violating POLA
>> ```
>>
>>
> I don't understand. What were you expecting?
>
> You have updated the name, not the username.
>
>
> --
> 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 rubyonrails-core+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-core@googlegroups.com.
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Mohamed Wael Khobalatte

-- 
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 rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
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