You have a nil object when you didn't expect it! Error!

Hi, I've created a business form and an address form using scaffolding
and I am trying to get the business form to display some information
from the address form, but I keep getting an "You have a nil object
when you didn't expect it! You might have expected an instance of
Array. The error occurred while evaluating nil.each" error.

17: </tr>
18:
19: <% for business in @businesses %>
20: <% for address in @addresses %>
21:
22: <tr>
23: <td><%=h business.address_id %></td>

This is my business index.html form:

<h1>Listing businesses</h1>

<table>
  <tr>
    <th>Address</th>
    <th>Business name</th>
    <th>Business email</th>
    <th>Business telephone</th>
    <th>City</th>
  </tr>

<% for business in @businesses %>
<% for address in @addresses %>

  <tr>
    <td><%=h business.address_id %></td>
    <td><%=h business.business_name %></td>
    <td><%=h business.business_email %></td>
    <td><%=h business.business_telephone %></td>
    <td><%=h address.city %></td>
    <td><%= link_to 'Show', business %></td>
    <td><%= link_to 'Edit', edit_business_path(business) %></td>
    <td><%= link_to 'Destroy', business, :confirm => 'Are you
sure?', :method => :delete %></td>
  </tr>
<% end %>
<% end %>
</table>

<br />

<%= link_to 'New business', new_business_path %>

This is my business controller form:

def index
    @businesses = Business.search(params[:search])

    respond_to do |format|
      format.html # index.html.erb
      format.xml { render :xml => @businesses }
    end
  end

  def show
    @business = Business.find(params[:id])
    respond_to do |format|
      format.html # show.html.erb
      format.xml { render :xml => @business }
    end
  end

What have I missed?

Errm... I guess you've missed the fact that you haven't actually loaded or assigned @addresses in your controller?

Cheers,
Gary.

Hi,

You are looping through the addresses this way
<% for address in @addresses %>
but your controller misses @addresses
Please mention that in your controller.

Bye!!

it looks that error coming in yours show.html.erb

create a test data fisrt in new.html.erb
then GoTo show.html.erb

or in show.html.erb Put

<%= if @object.nil? %>

<% there are No data in records %>

<%else%>

yours code

<% end %>

ok if works then tell and if not then must reply…