# Db:fixures:load does not call Model.save()

**URL:** <https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322>\
**Category:** Rails\
**Created:** [July 28, 2010, 7:34am UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322 "2010-07-28T07:34:57Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 28, 2010, 7:34am UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/1 "2010-07-28T07:34:57Z")

</div>

Hello,

$ ruby script/generate model balance plus:integer minus:integer  
equal:integer

$ cat app/models/balance.rb  
class Balance \< ActiveRecord::Base  
def save  
self.equal = self.plus - self.minus  
super  
end  
end

$ cat test/fixtures/balances.yml  
\_10-1:  
plus: 10  
minus: 1

$ rake db:fixtures:load

$ sqlite3 db/development.sqlite3  
sqlite\> select \* from balances;  
//=\> |xxx|10|1||…  
// equal is not 9

Even create\_or\_update() was the same.

Should I write it as  
equal: 9  
in the fixture-file?

It’s not DRY.

Thanks.

---

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 28, 2010, 8:36am UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/2 "2010-07-28T08:36:26Z")

</div>

On Jul 28, 4:22 am, isyairazu [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> $ sqlite3 db/development.sqlite3  
> sqlite\> select \* from balances;  
> //=\> |xxx|10|1||…  
> // equal is not 9
> 
> Even create\_or\_update() was the same.

fixtures are directly inserted into the db

> Should I write it as  
> equal: 9  
> in the fixture-file?
> 
> It’s not DRY.

It isn’t, but then again your data just isn’t dry. You can use erb in  
your fixtures ( \<%= %\>) if it’s bothering you that much.

Fred

---

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 28, 2010, 1:03pm UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/3 "2010-07-28T13:03:23Z")

</div>

Fred, thank for the reply!

I was able to understand very well.

Thakyou very much!

---

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 28, 2010, 2:25pm UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/4 "2010-07-28T14:25:48Z")

</div>

isyairazu wrote:

> Fred, thank for the reply!
> 
> I was able to understand very well.
> 
> Thakyou very much!

You do understand fixtures are in most cases a bad idea to use.

---

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 29, 2010, 11:43am UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/5 "2010-07-29T11:43:20Z")

</div>

Thankyou Fernando and Marnen!  
I forget fixtures.  
I will learn Machinist.

Thankyou very much!

---

<div class="post-metadata">

**Author:** ![isyairazu](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/41988e/32.png) [@isyairazu](https://www.ruby-forum.com/u/isyairazu)\
**Post date:** [July 28, 2010, 2:44pm UTC](https://www.ruby-forum.com/t/dbload-does-not-call-model-save/192322/6 "2010-07-28T14:44:16Z")

</div>

Frederick C. wrote:

> On Jul 28, 4:22ï¿½am, isyairazu [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > $ sqlite3 db/development.sqlite3  
> > sqlite\> select \* from balances;  
> > //=\> |xxx|10|1||…  
> > // equal is not 9
> > 
> > Even create\_or\_update() was the same.
> 
> fixtures are directly inserted into the db

Which is one of the many reasons they should never, ever, ever be used.  
The core team completely screwed up the feature. Just forget that  
fixtures exist and use factories (I like Machinist for this). Your  
testing will be much easier.

Best,  
–Â  
Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid

Sent from my iPhone
