# Version\_fu in Rails 2.1.1

**URL:** <https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466>\
**Category:** Rails\
**Created:** [October 21, 2008, 9:49pm UTC](https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466 "2008-10-21T21:49:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tansaku](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ebca7d/32.png) [@tansaku](https://www.ruby-forum.com/u/tansaku)\
**Post date:** [October 21, 2008, 9:49pm UTC](https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466/1 "2008-10-21T21:49:20Z")

</div>

Hi,

So I read about how acts\_as\_versioned doesn’t play so well with the  
latest Rails version.

I got hold of an alternative, version\_fu, but I am still having  
trouble. [GitHub - jmckible/version\_fu: Rails 3 update of acts\_as\_versioned](http://github.com/jmckible/version_fu)

I’m getting the following error when trying to save the versioned  
model:

> > type = StatisticType.find(1)  
> > type.name = ‘bob’  
> > =\> “bob”  
> > type.save  
> > NoMethodError: undefined method `version=' for #<StatisticType::Version:0x244c3a0> from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/attribute_methods.rb:251:in `method\_missing’  
> > from /Users/samueljoseph/Code/eclipse-workspace/iknow\_reporting/  
> > vendor/plugins/version\_fu/lib/version\_fu.rb:101:in  
> > `instatiate_revision' from /Users/samueljoseph/Code/eclipse-workspace/iknow_reporting/ vendor/plugins/version_fu/lib/version_fu.rb:85:in `check\_for\_new\_version’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/  
> > active\_support/callbacks.rb:173:in `send' from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/callbacks.rb:173:in `evaluate\_method’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/  
> > active\_support/callbacks.rb:161:in `call' from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/callbacks.rb:93:in `run’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/  
> > active\_support/callbacks.rb:92:in `each' from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/callbacks.rb:92:in `send’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/  
> > active\_support/callbacks.rb:92:in `run' from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/callbacks.rb:272:in `run\_callbacks’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/callbacks.rb:298:in `callback' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/callbacks.rb:206:in `create\_or\_update’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/base.rb:2211:in `save_without_validation' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/validations.rb:911:in `save\_without\_dirty’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/dirty.rb:75:in `save_without_transactions' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/transactions.rb:106:in `save’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/connection\_adapters/abstract/database\_statements.rb:  
> > 66:in `transaction' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/transactions.rb:79:in `transaction’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/transactions.rb:98:in `transaction' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/transactions.rb:106:in `save’  
> > from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/  
> > active\_record/transactions.rb:118:in `rollback_active_record_state!' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/ active_record/transactions.rb:106:in `save’

Here’s the migration I used to prepare things (I checked in the  
database to make sure the changes are there):

class AddStatisticTypeVersioning \< ActiveRecord::Migration

def self.up  
create\_table :statistic\_type\_versions do |t|  
t.integer :statistic\_type\_id, :statistic\_category\_id  
t.string :name, :time\_filter, :unit  
t.text :sql  
t.timestamps  
end  
add\_column :statistic\_types, :version, :integer, :default=\>1  
end

def self.down  
remove\_column :statistic\_types, :version  
drop\_table :statistic\_type\_versions  
end

end

Am I making some simple mistake?

Many thanks in advance  
CHEERS\> SAM

---

<div class="post-metadata">

**Author:** ![tansaku](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ebca7d/32.png) [@tansaku](https://www.ruby-forum.com/u/tansaku)\
**Post date:** [October 21, 2008, 10:19pm UTC](https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466/2 "2008-10-21T22:19:54Z")

</div>

??

class StatisticsType \< ActiveRecord::Base

version\_fu

end

---

<div class="post-metadata">

**Author:** ![tansaku](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ebca7d/32.png) [@tansaku](https://www.ruby-forum.com/u/tansaku)\
**Post date:** [October 21, 2008, 10:54pm UTC](https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466/3 "2008-10-21T22:54:00Z")

</div>

Thanks, but no, have that in there already:

class StatisticType \< ActiveRecord::Base  
has\_many :statistic\_summaries  
version\_fu  
end

---

<div class="post-metadata">

**Author:** ![tansaku](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/ebca7d/32.png) [@tansaku](https://www.ruby-forum.com/u/tansaku)\
**Post date:** [October 24, 2008, 6:33pm UTC](https://www.ruby-forum.com/t/version-fu-in-rails-2-1-1/151466/4 "2008-10-24T18:33:13Z")

</div>

Turns out I was missing a version column in my statistic\_types  
table … Duh …
