2009-06-12 29 views
1

我有一個使用會話(會話存儲在數據庫中)的虛擬購物車。 我使用AJAX調用將產品添加到購物車。這個列表也是可排序的。 我遇到的問題是更新購物車中產品的分揀位置,因爲購物車是虛擬的。任何人都可以幫助(特別是使用sortable_element:update操作)。下面是一些代碼:沒有數據庫的可排序列表

#cart.rb 

class Cart 
    attr_reader :items 

    def initialize 
    @items = [] 
    end 

    def add_product(product 
    @items << CartItem.new(product) 
    end 
end 

#cart_item.rb 

class CartItem 
    attr_reader :product 

    def initialize(product) 
    @product = product 
    end 

    def name 
    @product.name 
    end 
end 

#cart/index.html.erb 

<div id="items"> 
    <%= render :partial => 'cart', :object => @cart %> 
</div> 

#cart/_cart.html.erb 

<%= render :partial => 'cart_item', :collection => @cart.items %> 
<%= sortable_element "items", :url => {:action => :update} %> 

#cart/_cart_item.html.erb 

<% content_tag_for :li, cart_item do %> 
    <p><%= cart_item.name %></p> 
<% end %> 

#cart_controller.rb 

def index 
    find_cart 
end 

def update 
    #???? how does I change the sort of @cart? 
    render :nothing => true 
end 

def find_cart 
    session[:cart] ||= @cart 
end 

回答