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…