El día 10 de septiembre de 2009 11:03, Natalia Gutierrez
<[email protected]> escribió:
> Hola a todos! soy nueva en la lista. Estoy utilizando Easy Eclipse RadRails,
> y siguiendo el libro Agile Web Development v2. Mi duda es sobre los render.
> El render_component esta deprecated. Viendo en internet ahora se utiliza el
> metodo render. El tema es que lo coloque en la vista checkout.html.erb
> (view):
>
> <%= error_messages_for("order")%>
> <%= render :action => 'display_cart'%>
> <% @page_title = "Checkout" -%>
> <% form_tag 'save_order' do %>
> <table>
>   <tr>
>     <td>Nombre
> ......
>
> y no hace nada. Esto es parte de mi controlador:
>
> class StoreController < ApplicationController
>   def index
>     @products=Product.salable_items
>   end
>
>   def display_cart
>     @cart = find_cart
>     @items = @cart.items
>     if @items.empty?
>       redirect_to_index("Su pedido esta vacio")
>     end
>   end
> .....
>
> Aca esta el display_cart.html.erb:
>
> <% @page_title = "Tu pedido" %>
> <div id="cartmenu">
> <ul>
>     <li><%= link_to "Continuar comprando", :action => "index" %></li>
>     <li><%= link_to "Vaciar pedido", :action => "empty_cart" %></li>
>     <li><%= link_to "Checkout", :action => "checkout" %></li>
> </ul>
> </div>
> <table cellpadding="10" cellspacing="0">
>     <tr class="carttitle">
>         <td rowspan="2">Cantidad</td>
>         <td rowspan="2">Descripcion</td>
>         <td colspan="2">Precio</td>
>     </tr>
>     <tr class="carttitle">
>         <td>Cada uno</td>
>         <td>Total</td>
>     </tr>
>     <% for item in @items
>         product = item.product
>     -%>
>     <tr>
>         <td><%= item.quantity %></td>
>         <td><%= h(product.title) %></td>
>         <td align="right"><%= number_to_currency(item.unit_price) %></td>
>         <td align="right"><%= formato_moneda(item.unit_price *
> item.quantity) %></td>
>     </tr>
>     <%end%>
>     <tr>
>         <td colspan="3" align="right"><strong>Total:</strong></td>
>         <td id="totalcell"><%=formato_moneda(@cart.total_price)%></td>
>     </tr>
> </table>
>
> Cuando presiono el boton checkout, muestra la pagina de checkout, pero no la
> de display_cart incluida. Incluso (como no entiendo mucho) probe con render
> : template, pero tampoco funciona. Probe colocar la sentencia con el render
> en el controlador, y ahi, me muestra el display_cart, pero no el checkout.
>
> Alguno me podra ayudar? Gracias
>
>

Tenés que usar render :partial ... el render :action es para decirle
al controlador que use otra view para renderizar y va en el código del
controlador. El render partial lo podés usar en la view.
Ojo, con el render :partial ya tenés que tener leídas las variables de
instancia que vas a usar.

http://api.rubyonrails.org/classes/ActionController/Base.html#M000658


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

Responder a