Error: undefined method for nil:NilClass

When I test functionals, I get the following error:

test_should_display_index(AlertsControllerTest):
ActionView::TemplateError: undefined method `name' for nil:NilClass
    On line #9 of app/views/alerts/index.html.erb

        6:
        7: <tr class="<%= row_class %>">
        8:      <td scope="row" class="first
odd"><%=h alert.title %></td>
        9:      <td class="even"><%=h
alert.file_status.name %></td>
        10:     <td class="last odd"><%= render
:partial => "shared/action_links", :locals => { :obj
=> alert, :type => "alert" } %>
        11:     </td>
        12: </tr>

This test should confirm the proper display of the index for class
Alerts. Alerts belong to class FileStatuses. Each file_status contains
two objects: :id and :name.

<%=h alert.file_status.name %> produces the expected
result when viewed in a browser (either draft, published or trash
depending on the individual alert's setting). So it seems that the
only thing finding this error is the test.

The test is pretty straight forward.  Its code is:

class AlertsControllerTest < ActionController::TestCase

  test "should display index" do
    get :index
    assert_response :success
    assert_template 'index'
    assert_not_nil assigns(@alert)
  end
end

So what am I doing wrong?

and of course, the source code is not escaped…

OK, I figured it out. I just needed to populate my fixtures (in
/tests/fixtures/). There is a good videocast addressing how to represent
these relationships here:
http://railscasts.com/episodes/81-fixtures-in-rails-2-0

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs