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:
def test_update
assert_equal 2, @order.line_items.first.quantity
@order.line_items.first.quantity = 4
assert @order.save, @order.errors.full_messages.join("; ")
@order.reload
assert_equal 4, @order.line_items.first.quantity
end
And I get the following result:
1> Failure:
test_update<OrderTest> [test/unit/order_test.rb:25]:
<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
end
Here''s the declaration of my model line_item.rb
class LineItem < ActiveRecord::Base
belongs_to :order
end
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.
Thank you.
--
Posted via http://www.ruby-forum.com/.