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?