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.