Select con ajax, catalogar productos por columnas

Hola, soy nuevo en Ruby on Rails y me he dispuesto a hacer una tienda
virtual en Ruby como proyecto fin de carrera.
Mi primera duda es como puedo hacer un select que mediante AJAX para
seleccionar opciones y luego mostrar ordenado inmediatamente al
seleccionar una opcion. Tengo este codigo:

tienda/index.rhtml
<%= javascript_include_tag “prototype” %>

[Catalogo]

/* Aqui iria el Select para mostrar ordeados productos por nombre, unidades o precio con AJAX o ruby */ <% for producto in @productos_precio %>
  • <%= h(producto.nombre) %>

      <%= producto.descripcion %>
      Disponibles: <%= producto.unidades %>
      Precio: <%= producto.precio %>
  • <% end %> <%= pagination_links(@pagina_productos_precio)%>

    Para el actionRecord tengo este codigo:

    tienda/tienda_controller.rb
    class TiendaController < ApplicationController
    def index
    @pagina_productos_nombre, @productos_nombre = paginate(:producto,
    :order => ‘nombre’, :per_page => 9)
    @pagina_productos_precio, @productos_precio = paginate(:producto,
    :order => ‘precio’, :per_page => 9)
    @pagina_productos_unidades, @productos_unidades =
    paginate(:producto, :order => ‘unidades’, :per_page => 9)
    end
    end

    Mi otra duda es que muestro los productos por filas, pero me gustaria
    saber como hacer para mostrar 3 productos por fila, es decir poder
    mostrarlos de manera que aparezcan en columnas.

    Muchas gracias de antemano

    On 04/11/2007, Eduardo B. [email protected] wrote:

      </ul>
    

    <% end %>
    <%= pagination_links(@pagina_productos_precio)%>

    Para el actionRecord tengo este codigo:

    No sé si te entiendo muy bien, creo que quieres poder ordenar
    productos por distintos criterios. En el controlador haces tres
    paginaciones simultáneas en función de orden cuando sólo necesitarías
    una, discriminando por un parámetro pasado por el usuario.

    Primero olvídate del bendito/maldito Ajax y crea un simple select que
    pase un parámetro “orden”. En el controlador discriminarás por ese
    parámetro para elegir el ‘order by’ que le pasas a la búsqueda.

    Cuando todo funcione bien de forma tradicional, te preocupas del Ajax,
    que en cuanto oimos la palabreja nos tiramos todos a correr antes de
    andar como mastines oliendo un bistec sanguinolento.

    Mi otra duda es que muestro los productos por filas, pero me gustaria
    saber como hacer para mostrar 3 productos por fila, es decir poder
    mostrarlos de manera que aparezcan en columnas.

    Pues depende del marcado, pero con CSS y floats sería trivial. El
    problema principal que puede adivinarse es que el fragmento de código
    HTML que muestras está tan lleno de errores que es completamente
    inviable. ¿Tienes conocimientos de HTML o cuentas con la ayuda de
    alguien que te pueda construir una vista apropiada? Sólo partiendo de
    una vista válida y bien construida podrás tener el diseño visual que
    esperas.


    Manuel, que
    piensa que eres una excelente persona y medra en torno a
    http://simplelogica.net y/o http://simplelogica.net/logicola/
    Recuerda comer mucha fruta y verdura.

    Gracias Manuel. Ya he conseguido mediante la hoja de estilo el tabular
    los datos por columnas. Lo que sigo sin saber como hacer es para el
    select, he modificado el tienda_controller.rb asi:

    class TiendaController < ApplicationController
    def index(parametro)
    @pagina_productos_nombre, @productos_nombre = paginate(:producto,
    :order => parametro, :per_page => 9)

    end
    end

    No se si la sintaxis es la adecuada, lo que pretendo es mediante el paso
    de ese parametro que me pagine y muestre los resultados ordenados por
    nombre, unidades o precio segun se lo indique en el select.

    El rhtml lo he puesto asi, pero no se como poner el select para pasar
    dicho parametro al codigo ruby, empece hace dos dias con ruby on rails y
    estoy algo perdido, tengo que pasarlo con un post? alguna manera de
    recoger el parametro y pasarselo al rb para que lo gestione?

    rhtml:

    Catalogo de productos

    Ordenar por: nombre precio unidades

      <% for producto in @productos_precio %>
    • <%= h(producto.nombre) %>



      <%= producto.descripcion %>Precio: <%= producto.precio %>
    • <% end %>

    On 05/11/2007, Eduardo B. [email protected] wrote:

    class TiendaController < ApplicationController
    def index(parametro)
    @pagina_productos_nombre, @productos_nombre = paginate(:producto,
    :order => parametro, :per_page => 9)

    end
    end

    No tienes que pasar “parametro” a index, los parametros de la
    peticiónte llegan en el hash params sin que tengas que hacer nada para
    recibirlos. Lo manejarías con algo así como params[:order]

    El rhtml lo he puesto asi, pero no se como poner el select para pasar
    dicho parametro al codigo ruby, empece hace dos dias con ruby on rails y
    estoy algo perdido, tengo que pasarlo con un post? alguna manera de
    recoger el parametro y pasarselo al rb para que lo gestione?

    Como digo, los parámetros (post y get) te llegan en el hash params,
    así que no tienes que hacer practicamente nada.

    De todas formas, el problema es, como tú apuntas, que te faltan
    conocimientos de base de Rails. Sería más práctico que dedicases un
    tiempo a formarte, mediante los tutoriales y libros de los que se ha
    hablado mucho en la lista, para tener claros conceptos muy básicos
    como estos antes de acometer cualquier proyecto relevante, y más algo
    como un proyecto de fin de carrera.


    Manuel, que
    piensa que eres una excelente persona y medra en torno a
    http://simplelogica.net y/o http://simplelogica.net/logicola/
    Recuerda comer mucha fruta y verdura.