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