how to change quantity to cart?

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                @items.sum { |item| item.quantity }        end

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

^^ Henry.. thanx ..for checking my codes.. and pointing out the error.. it's working now..

:slight_smile: