Update attribute of dependent record in association

D

ddoherty03

All,

I have a rails app with a Transaction class that has_many :entries. It
starts like this. Each Transaction has many edits, and those with the
debit attribute true are debits, false are credits.

class Transaction < ActiveRecord::Base
has_many :entries
has_many :debits, :class_name => 'Entry', :conditions => {:debit => true}
has_many :credits, :class_name => 'Entry', :conditions => {:debit => false}
end

I want to be able to complete an Transaction if there is exactly one
Entry that has its amount set to nil. I want to set that amount to a
debit or credit of the proper amount to make the Transaction balance.

Sounded easy to me, but I am having trouble with my balance! method.
The relevant part of it is:

def balance!
...
if num_nils == 1
# Set the sole nil entry to amount needed to balance Transaction
plug = debit_total - credit_total
entries.where:)amount => nil).each do |e|
e.amount = plug.abs
e.debit = (plug < 0)
e.save
end
end

The problem is that when I finish this, the entries associated with my
Transaction are not affected. I appears to make a copy, change it, and
leave the Entry associated with my Transaction with a nil amount.

What am I missing?

Thanks,

Dan Doherty
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,149
Members
46,695
Latest member
StanleyDri

Latest Threads

Top