creo q esto de los objetos no lo tengo muy claro:
estoy haciendo unos test modificando codigos de ejemplo y me encuentro con un problema sin lugar a dudas causado por algun concepto mal asumido.
asi q cuando antes lo corrija mejor.
tengo un layout:
<body>
...
<%= render(:partial => "menu") %>
. ...
<%= yield :layout %>
</body>
</html>
_menu.rhtml muestra un listado de todas las empresas q se muestra en el lateral y con un link al edit
<table>
<% for empresa in @empresas %>
<tr>
<td>+<%= link_to empresa.empresa, :action => 'edit', :id => empresa %></td>
</tr>
<% end %>
</table>
este es el controlador, copiado directamente del list
def menu
@empresa_pages, @empresas = paginate :empresas, :per_page => 10
end
el controlador del edit y list no tiene ningun misterio, sacaditos calentitos del scaffold
def list
@empresa_pages, @empresas = paginate :empresas, :per_page => 10
end
def edit
@empresa = Empresa.find(params[:id])
end
el problema es q me da este error si llamo a edit, aunque si llamo a list me va bien:
Código:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.each
Extracted source (around line #3):
1: <table>
2:
3: <% for empresa in @empresas %>
4: <tr>
5: <td>+<%= link_to empresa.empresa, :action => 'edit', :id => empresa %></td>
6: </tr>
lo q pasa es q @empresas esta vacio, pero no llego a comprender si es pq el metodo edit lo pisa (creo q no) o que con el metodo list funciona de churro (pq inicializa la variable por otro lado) pq @empresa esta vacio.