^^ Henry.. thanx ..for checking my codes.. and pointing out the error.. it's working now..
:) On 6월17일, 오후11시17분, Nicholas Henry <[email protected]> wrote: > 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 > > @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 -~----------~----~----~----~------~----~------~--~---

