2009-06-12 20 views
1

セッション(DBに保存されたセッション)を使用した仮想ショッピングカートがあります。 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 

答えて

関連する問題