error: nested-routes with nested-model having foreign keys

Hi,

I have this Test, User and Project models where every test belongs_to
a project and project has_many tests.
Test also belongs_to User as 'owner'.

Then i followed railcast#139 to create nested route as -
  map.resources :projects, :has_many => :tests

But somehow i get this error when url is 'http://127.0.0.1:3000/
projects/1/tests' in tests/index.html.erb. Please help.

How line 24 works and not 25 :?

- Ninad

**** ERROR ****

NoMethodError in Tests#index

Showing app/views/tests/index.html.erb where line #25 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.username

**** tests_controller.rb ***

    @project = Project.find(params[:project_id])
    @tests = @project.tests.find(:all, :include =>
[:owner, :project, :category])

**** index.html.erb ****

20: <% @tests.each do |testcase| %>
21: <tr>
22: <td><%=h test.status %></td>
23: <td><%=h test.defunct %></td>
24: <td><%=h test.project.title %></td>
25: <td><%=h test.owner.username %></td>
26: </tr>
27: <% end %>

I observed that eager loading works when there is only one entry in
tests model.
Strange!

Any suggestions?

Hi

20: <% @tests.each do |testcase| %>
21: <tr>
22: <td><%=h test.status %></td>
23: <td><%=h test.defunct %></td>
24: <td><%=h test.project.title %></td>
25: <td><%=h test.owner.username %></td>

     Is it actually |testcase| or |test| ?

Sijo

it is test not testcase!

I see some issue with eager loading. This post is little confusing. I
will create another one.