Te reitero Simula, NO tenes que hacer los JOINS vos. Eso lo hace solo ActiveRecord. El join se usa para casos determinados, no para este tan simple.

Pasa también la linea donde da el error de nil.



On 07/28/2011 09:46 AM, simula wrote:
gracias por tu ayuda.
He intentando hacer esto en el controlador
@products = Product.paginate :per_page => 5, :page => params[:page], :joins => " inner join productsimages "

hasta aqui bien


pero al ir a pintar los datos me dice

|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|



<% @products.each do |product| %>

<tr>
<td><%= product.name <http://product.name> %>

</td>
<td><%= product.category_id %></td>
<td><%= product.category %></td>
<% product.productsimages.each do |productsimage| %>
<td><%= image_tag productsimage.url %>
<% end %>

<td><%=raw product.ingredients %></td>
<td><%= product.expiration %></td>
<td><%= product.conservation %></td>
<td><%= product.format %></td>
<td><%= product.specialformat %></td>
<td><%= product.preparation %></td>
<td><%= product.moreinfo %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_product_path(product) %></td>
<td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>

</tr>
<% end %>



sabes que puedo estar haciendo mal?


muchas gracias



El 28/07/2011, a las 13:45, Tute escribió:

Simula,

Cuando haces un Product.all, también trae las imagenes en la medida que tengas:

class Product < ActiveRecord::Base

has_many :images

end

class Image < ActiveRecord::Base
belongs_to :product
end

Entonces en el controlador te quedaria


def [como se llame tu método]
@products = Products.all, :include => [:images] #el include no es necesario, solo hace que las imagenes se carguen ahora mismo. Esto hace el inner join por vos.

En la vista, vas a tener que hacer algo así como:

<table>
<thead>ble ble</thead>
<tbody>
<% @products.each do |product| %>
<tr>
<td><%= product.name%>
<% product.images.each do |image| %>
<td><%= image_tag image.url %>
<% end %>
</tr>
<% end %>
</tbody>
</table>

On 07/28/2011 02:33 AM, simula wrote:
Hola Juan Pablo gracias, ya me he suscrito rubysur.

Lo que me comentas de la vista, el problema es que no se como obtener los datos ya que tengo una tabla con productos y otra con imágenes.

Un producto puede tener mas de una imagen y en el controlador con productos.all obtengo productos y no se como hacer una unión entre un producto y sus imágenes


muchas gracias por la ayuda


El 28/07/2011, a las 00:20, Juan Pablo Taulamet escribió:

Hola Simula!

Te cuento que muchos estamos en la lista de RubySur y ya no usamos mucho que digamos esta lista.

Creo que para lo que estás queriendo hacer, lo más indicado sería no incluir las imágenes y simplemente llamarlas en la vista:

Por ejemplo:

Controller:
@productos = Producto.all

Vista:
@productos.each do | producto|
<%= producto.nombre %>
<%= image_tag(producto.image) unless producto.image.nil? %>

Quizá si mandás un correo a la lista de RubySur obtenés más y mejores respuestas :)

:nueva_lista => [email protected] <mailto:[email protected]>

Un abrazo!

--
Saludos Cordiales,
    Juan Pablo


2011/7/27 simula <[email protected] <mailto:[email protected]>>

    Hola, estoy empezando con ruby on rails y tengo una tabla de
    productos y otra de imagenes de productos

    a la hora de mostrar productos en el controlador hago esto

    @products = Product.paginate :per_page => 5, :page => params[:page]

    me muestra los productos paginados


    y quiero mostrar las imágenes de cada producto

    he intentado esto

    #@products = Product.paginate :per_page => 5, :page =>
    params[:page], :include => " productsimages ", :conditions =>
    'products.id <http://products.id/>=productsimage.product_id'


    y claro así me muestra sólo los productos que tienen imagen.

    Alguien me puede ayudar que tengo que hacer?

    Llevo varios días y no se como seguir

    gracias
    _______________________________________________
    Ruby mailing list
    [email protected]
    <mailto:[email protected]>
    http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar


_______________________________________________
Ruby mailing list
[email protected] <mailto:[email protected]>
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar


_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

_______________________________________________
Ruby mailing list
[email protected] <mailto:[email protected]>
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar


_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a