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:
22: <%=h test.status %>
23: <%=h test.defunct %>
24: <%=h test.project.title %>
25: <%=h test.owner.username %>
26:
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:


22: <%=h test.status %>
23: <%=h test.defunct %>
24: <%=h test.project.title %>
25: <%=h test.owner.username %>
 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.