Problem updating child row from parent model
I developped a web site with Ruby on Rails, but I get a problem during the testing.
I have a parent table called "orders" and a child table called "line_items".
I created some data for the test in the files "test/fixtures/orders.yml" and "test/fixtures/line_items.yml".
In the file "test/unit/order_test.rb" I wrote some code to test the "Add", "Update" and "Destroy" for my model"Order".
My problem is that on the "Update" I try to update a quantity which is a field of my table "line_items" which is a child of my table "orders".
For that test I used the following code:
assert_equal 2, @order.line_items.first.quantity
@order.line_items.first.quantity = 4
assert @order.save, @order.errors.full_messages.join("; ")
assert_equal 4, @order.line_items.first.quantity
And I get the following result:
<4> expected but was <2>.
I tried lots of different things, but I always get that error. I really don't know why.
Here's the declaration of my model order.rb
class Order < ActiveRecord::Base
has_many :line_items, :exclusively_dependent => true
Here's the declaration of my model line_item.rb
class LineItem < ActiveRecord::Base
And I put at the begining of the order_test.rb file.
fixtures :orders, :line_items
I guess I'm doing wrong, maybe it's not the way to update a child row or I probably miss something, unless we can't update a child row through a parent model.
If someone has the answer and can help me to figure out why the update doesn't work, that will be great.