2017-09-13 1 views
0

カート内のアイテムの数量を増やすことができません。それは1つを追加するだけで、それは '削除'ボタンに切り替わります。私はこれを再構成できる何らかの方法はありますか?各項目を複数追加することはできますか?レールとレディースを使用してショッピングカートのアイテムを増やす

carts_controller.rb

def add 
    $redis.sadd current_user_cart, params[:item_id] 
    render json: current_user.cart_count, status: 200 
end 

carts.coffee

$(window).load -> 
    $('a[data-target]').click (e) -> 
    e.preventDefault() 
    $this = $(this) 
    if $this.data('target') == 'Add to' 
     url = $this.data('addurl') 
     new_target = "Remove from" 
    else 
     url = $this.data('removeurl') 
     new_target = "Add to" 
    $.ajax url: url, type: 'put', success: (data) -> 
     $('.cart-count').html(data) 
     $this.find('span').html(new_target) 
     $this.data('target', new_target) 


    $('#mycart .remove').click (e) -> 
    e.preventDefault() 
    $this = $(this).closest('a') 
    url = $this.data('targeturl') 
    $.ajax url: url, type: 'put', success: (data) -> 
     $('.cart-count').html(data) 
     $this.closest('.cart-item').slideUp() 

答えて

0

私は実際に自分でこれを考え出しました。アイテムは現在、配列に保存されています。複数のアイテムをカートに追加できるようになりました。 'add to'ボタンも、 'add to'と 'remove from'の間を行き来することがなくなりました。 「削除」ボタンが別々になりました。

def show 
    cart_ids = $redis.lrange current_user_cart, -100, 100 
    @cart_items = Item.find(cart_ids) 
    end 

def add 
    $redis.lpush current_user_cart, params[:item_id] 
    render json: current_user.cart_count, status: 200 
end 

def remove 
    $redis.lrem current_user_cart, 1, params[:item_id] 
    render json: current_user.cart_count, status: 200 
end 
関連する問題