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



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