[Ror-es] @comercial.empresas.provincias : undefined method

Xavier Noria fxn at hashref.com
Mon Nov 27 21:10:16 GMT 2006


On Nov 27, 2006, at 4:55 PM, lamacarena wrote:

> <% for provincia in @comercial.empresas.provincias %>
>       <%= provincia.nombreprovincia %>
>       (<%= (provincia.count)%>)
> <% end %>
>
> pero me da error en la primera linea:
> undefined method `provincias' for Empresa:Class

Yep, ocurre que empresas es una coleccion. Cada empresa tiene una  
provincia asociada, pero la coleccion de las empresas de un  
@comercial como tal no.

Has de ir empresa a empresa:

   <% provincias = @comercial.empresas.map {|e| e.provincia} %>
   <% for provincia in provincias %>
     ...
   <% end %>

Si pudieran haber provincias repetidas y no quisieras duplicados solo  
hay que añadir uniq (no es necesaria ordenacion):

     <% provincias = @comercial.empresas.map {|e| e.provincia}.uniq %>

Aunque ese codigo suena a "mucho Ruby" para una vista a priori,  
habria que ver si no toca al controlador calcular eso y pasarlo a la  
vista mas mascado. Eso ya eres tu quien mejor puede valorarlo segun  
los detalles.

-- fxn



More information about the Ror-es mailing list