# Acts\_as\_versioned and qa

**URL:** <https://www.ruby-forum.com/t/acts-as-versioned-and-qa/164023>\
**Category:** Rails\
**Created:** [March 27, 2009, 12:10am UTC](https://www.ruby-forum.com/t/acts-as-versioned-and-qa/164023 "2009-03-27T00:10:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![linus](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/f4b2a3/32.png) [@linus](https://www.ruby-forum.com/u/linus)\
**Post date:** [March 27, 2009, 12:10am UTC](https://www.ruby-forum.com/t/acts-as-versioned-and-qa/164023/1 "2009-03-27T00:10:34Z")

</div>

Hi,  
I have Article model and it has aasm\_column qa, that is initially  
“pending”.

In order to get it reset qa column on new versions, I have made:

def set\_new\_version  
write\_attribute(:qa, “pending”)  
end

But now the aasm methods are also triggering the new version, dispite:

self.non\_versioned\_columns \<\< ‘updated\_at’  
self.non\_versioned\_columns \<\< ‘created\_at’  
self.non\_versioned\_columns \<\< ‘qa’  
self.non\_versioned\_columns \<\< ‘published\_at’

How to make the approve! method to start working, while data change  
should trigger qa reset?

Tom

PS Here is saple code:

class Article \< ActiveRecord::Base

include AASM

aasm\_column :qa  
aasm\_initial\_state :pending  
aasm\_state :pending  
aasm\_state :approved  
aasm\_state :rejected

aasm\_event :approve do  
transitions :from =\> :pending, :to =\> :approved, :guard =\> :valid?  
end

aasm\_event :reject do  
transitions :from =\> :pending, :to =\> :rejected, :guard =\> :valid?  
end

acts\_as\_versioned

self.non\_versioned\_columns \<\< ‘updated\_at’  
self.non\_versioned\_columns \<\< ‘created\_at’  
self.non\_versioned\_columns \<\< ‘qa’  
self.non\_versioned\_columns \<\< ‘published\_at’

def set\_new\_version  
write\_attribute(:qa, “pending”)  
end

end
