rasfast
9/2/2008 10:21:00 AM
Hi, all!
Maybe a noob question, sorry, but I'm really stuck with this.
I have 2 models with has_many and belongs_to associations.
class Transaction < ActiveRecord::Base
has_many :bonuses, :class_name => 'TransactionBonus'
end
class TransactionBonus < ActiveRecord::Base
belongs_to :transaction
end
The problem is that I cannot save TransactionBonus record to the
database - it's simply doesn't do anything! Here is my irb console
output with test records:
>> transaction=Transaction.find(1)
=> #<Transaction id: 1, card_account_id: 1, loyalty_id: 0,
discount_level: 1, sale_session_id: 5, sum: 123.0, created_at:
"2008-09-01 13:48:10", updated_at: "2008-09-01 13:48:10">
>> transaction.bonuses
=> []
>> bonus=transaction.bonuses.create(:transaction_id => 1,:taken_bonus => 123,:collected_bonus => 34,:final_sum => 99)
=> #<TransactionBonus id: nil, transaction_id: 1, taken_bonus: 123.0,
collected_bonus: 34.0, final_sum: 99.0, created_at: nil, updated_at:
nil>
>> transaction.bonuses
=> [#<TransactionBonus id: nil, transaction_id: 1, taken_bonus: 123.0,
collected_bonus: 34.0, final_sum: 99.0, created_at: nil, updated_at:
nil>]
>> bonus.save
=> #<Transaction id: 1, card_account_id: 1, loyalty_id: 0,
discount_level: 1, sale_session_id: 5, sum: 123.0, created_at:
"2008-09-01 13:48:10", updated_at: "2008-09-01 13:48:10">
>> bonus
=> #<TransactionBonus id: nil, transaction_id: 1, taken_bonus: 123.0,
collected_bonus: 34.0, final_sum: 99.0, created_at: nil, updated_at:
nil>
Please, note id: nil for the bonus var, it means that the record is
not saved to the database.
Can you suggest why?