db:fixures:load does not call Model.save()

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

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.

$ sqlite3 db/development.sqlite3
> 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

Fred, thank for the reply!

I was able to understand very well.

Thakyou very much!

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.

Frederick Cheung wrote:

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

Thankyou very much!