The code you provided in your form:

Qty : <%= text_field_tag 'quantity', '1', :size => 2, :maxlength => 2
%>
<% form_remote_tag :url => {:action => 'add_to_cart', :id =>
product }
do %>
                          <%= submit_tag "Add to Cart" %>
                          <% end %>

You need to have the quantity field within the form:

Qty :
<% form_remote_tag :url => {:action => 'add_to_cart', :id =>
product }
do %>
<%= text_field_tag 'quantity', '1', :size => 2, :maxlength => 2
%>
                          <%= submit_tag "Add to Cart" %>
                          <% end %>

On Jun 17, 4:17 am, Mike75 <[email protected]> wrote:
> hi all..
> I've been studying ROR using the agile development ROR book.
> and I'm stuck at the shopping cart.
>
> what I am trying to do is that, from the book, the 'add_to_cart'
> button doesn't take the quantity from the users.
>
> well, What I am trying to do is that allowing users to input quantity
> value
> before pressing 'add_to_cart' and when 'add_to_cart' is pressed, the
> users can see
> the input values with the total price before checking out the items.
>
> So, on the view, I added the following line.
>
> Qty : <%= text_field_tag 'quantity', '1', :size => 2, :maxlength => 2
> %>
>
> <% form_remote_tag :url => {:action => 'add_to_cart', :id => product }
> do %>
>                           <%= submit_tag "Add to Cart" %>
>                           <% end %>
>
> and the store_controller,
>
> quantity = Integer(params['quantity'])
>
> well..
> the flashing cart shows 0 quantity.
> i need help, please?
>
> ///////////////
> Your Cart
> 0(quantity) ×  1(prod_id)      $0.00
> Total   $0.00
> ////////////////
>
> --------------------------- (controller)
> def add_to_cart
>   begin
>     product = Product.find(params[:id])
>     quantity = Integer(params['quantity']) #------ i hope this is
> right way to get quantity from the view
>
>   rescue ActiveRecord::RecordNotFound
>     logger.error("Attempt to access invalid product #{params[:id]}" )
>     redirect_to_index("Invalid product" )
>   else
>     @cart = find_cart
>     @current_item = @cart.add_product(product, quantity)
>     respond_to do |format|
>        format.js if request.xhr?
>        format.html {redirect_to_index}
>     end
>   end
> end
>
> --------------------------- (cart_item.rb)
> def initialize(product, quantity)
>     @product = product
>     @quantity = quantity
>   end
>   def increment_quantity(quantity)
>     @quantity += quantity
>   end
>   def price
>
>  #### product has a p200 field with the price in it
>     @product.p200 * @quantity
>   end
>
> -----------------------------(cart.rb)
>          def add_product(product, quantity)
>                 current_item = @items.find {|item| item.product == product}
>                 if current_item
>                         current_item.increment_quantity(quantity)
>                 else
>                         current_item = CartItem.new(product, quantity)
>                         @items << current_item
>                 end
>                          current_item
>         end
>
>         def total_price
>                 @items.sum { |item| item.price }
>         end
>
>         def total_items
>               �[email protected] { |item| item.quantity }
>        end
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to