Hi all, I am trying to build a RESTful shopping cart and I have hit a small wall, but before I get to that let me explain what I have done thus far. I have two RESTful controllers, CartController and CartItemsController with a nested routes setup like so map.resources :carts do |carts| carts.resources :cart_items, :collection => {:empty => :delete} end (I added a custom route to the for emptying the cart as it seemed to me that when I clear the cart I am operating on the items which is why I added that action to the CartItemsController. If this is not RESTfully "correct" I would love to hear about it!) Using the nested routes I am using the CartItemsController to perform the CRUD operations on CartItems and assigning them to the proper cart (e.g. adding an item would link to POST /carts/1/cart_items). When a user attempts to add an item to the cart that is already there, from what I understand of REST, this should be an update (i.e. PUT /cart/1/cart_items/23) with the new attributes for the item. All I should have to do is change the submission form where the user is doing the update from a POST to a PUT depending on whether the item they are about to add is in the cart already. BUT, what if I am using AJAX to update the cart? When the form is initally generated it will use a create action. When the user adds the item to cart, the page does not refresh and the form retains it create action. If the user uses the form again the item will become a new line item in the cart. Do you see where I am going with this? Possible solutions I have kicked around is doing a check in the CartItemsController create action to see if the item is already in the cart and the update it, but that seems just plain wrong. Using RJS updating to update the form with a new URL and additional field with the CartItem ID or creating a custom action to handle all of this (seems wrong too!) I am really starting to enjoy using RESTful development, but I think I just know enough to be dangerous so if anyone could give me some advice on the more ''correct'' way to solve this problem that would be fantastic. Also, if anyone knows of really good resource about resources (like how to identify) please pass it along. Thanks Peer -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---