When running the integration test on create (exercise 3 of the lab),
I've noticed in test.log that the added comments are not attached to
any post:

Processing PostsController#post_comment (for 127.0.0.1 at 2009-07-20
20:15:00) [POST]
  Parameters: {"comment"=>{"post_id"=>"1138", "comment"=>"my
comment"}}
   [4;36;1mSQL (1.0ms) [0m    [0;1mINSERT INTO `comments` (`post_id`,
`created_at`, `comment`, `updated_at`) VALUES(NULL, '2009-07-20
18:15:00', 'my comment', '2009-07-20 18:15:00') [0m
Redirected to http://www.example.com/posts/show
Completed in 71ms (DB: 1) | 302 Found [http://www.example.com/posts/
post_comment]


Notice the value NULL on post_id.

In order to get them attached to the right post I've changed the test
as following:

  test "should create 1 post and 2 comments" do
    post '/posts/create', :post => {:title => "Rails", :body => "I
love Rails"}
    assert assigns(:post).valid?
    assert_redirected_to post_path(assigns(:post))

   # Added here
   post = assigns(:post)
    get "/posts/#{post.id}"
   # End of addition

    post '/posts/post_comment', :comment => {:post_id =>
post.id, :comment => "my comment"}
    assert assigns(:comment).valid?
    assert_redirected_to :action => 'show'

    # Added here
    get "/posts/#{post.id}"
    # End of addition

    post '/posts/post_comment', :comment => {:post_id =>
post.id, :comment => "my comment 2"}
    assert assigns(:comment).valid?
    assert_redirected_to :action => 'show'

Is this the right way to do?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "ruby-on-rails-programming-with-passion" group.
To unsubscribe from this group, send email to
ruby-on-rails-programming-with-passion+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/ruby-on-rails-programming-with-passion?hl=en?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to