# Update Objects and reset the isDirty-flag (ember-data 1.0 beta.2)

**URL:** https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518
**Category:** Ember Data
**Created:** [September 8, 2013, 6:06pm UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518 "2013-09-08T18:06:01Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![fwoeck](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/fwoeck/32/4765_2.png) [@fwoeck](https://discuss.emberjs.com/u/fwoeck)
#### Post date: [September 8, 2013, 6:06pm UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/1 "2013-09-08T18:06:01Z")

</div>

[I see this is the wrong forum, sorry - moved to [ember.js - Update Objects and reset the isDirty-flag (ember-data 1.0 beta.2) - Stack Overflow](http://stackoverflow.com/questions/18691337/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2) ]

With former versions of ember-data I could bring a modified model back to clear-state by calling:

user.transitionTo(‘loaded.saved’)

Is there a way to do this in version 1.0beta.2? The main reason is to suppress any server requests when saying

user.save()

---

<div class="post-metadata">

### Author: ![balint](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/balint/32/12521_2.png) [@balint](https://discuss.emberjs.com/u/balint)
#### Post date: [September 10, 2013, 2:49pm UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/2 "2013-09-10T14:49:15Z")

</div>

What about `user.rollback()`?

Taking the look [at the source code](https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L251-253) it does exactly what you try to achieve.

---

<div class="post-metadata">

### Author: ![fwoeck](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/fwoeck/32/4765_2.png) [@fwoeck](https://discuss.emberjs.com/u/fwoeck)
#### Post date: [September 11, 2013, 8:23am UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/3 "2013-09-11T08:23:39Z")

</div>

@balint: thanks for the hint - u.rollback() actually reverts the changes too, but clearing the \_attributes before transition

```
u.get('isDirty') => true

u._attributes = {}
u.transitionTo('loaded.saved')

u.get('isDirty') => false

```

seems to work pretty well.

---

<div class="post-metadata">

### Author: ![balint](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/balint/32/12521_2.png) [@balint](https://discuss.emberjs.com/u/balint)
#### Post date: [September 11, 2013, 10:01am UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/4 "2013-09-11T10:01:55Z")

</div>

So do I understand correctly that `rollback()` does not cut it for you because it also clears out the `_attributes` hash?

---

<div class="post-metadata">

### Author: ![fwoeck](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/fwoeck/32/4765_2.png) [@fwoeck](https://discuss.emberjs.com/u/fwoeck)
#### Post date: [September 12, 2013, 5:24am UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/5 "2013-09-12T05:24:08Z")

</div>

Not exactly - I’ll give an example of what I meant. But while I typed it I found out that this not a good solution, because by clearing out the \_attributes, the object loses its ability to become dirty again permanently (ember-data 1.0 beta2).

```
setup:
u = App.store.all('user').objectAt(1)
u.get('isOnline') => false
u.get('isDirty') => false

u.set('isOnline', true)
u.get('isDirty') => true
u._attributes => Object {isOnline: true}

a) with rollback:
u.rollback()
u.get('isDirty') => false
u.get('isOnline') => false

b) with clear _attributes & transition:
u._attributes = {}
u.transitionTo('loaded.saved')
u.get('isDirty') => false
u.get('isOnline') => true

```

---

<div class="post-metadata">

### Author: ![fwoeck](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/fwoeck/32/4765_2.png) [@fwoeck](https://discuss.emberjs.com/u/fwoeck)
#### Post date: [September 12, 2013, 5:34am UTC](https://discuss.emberjs.com/t/update-objects-and-reset-the-isdirty-flag-ember-data-1-0-beta-2/2518/6 "2013-09-12T05:34:20Z")

</div>

ahh, this url [Ember Data 1.0.0 Beta 2 Released](http://emberjs.com/blog/2013/09/04/ember-data-1-0-beta-2-released.html) has a solution:

```
"Add store.update(type, hash) to update some, but not all attributes"

```

That’s not really an answer to my former question - but it is exactly what I want.
