Redis&购物车设计访客用户(Rails 4) - 如何将guest_user购物车移动到注册用户?

时间:2016-02-25 09:40:13

标签: ruby-on-rails ruby devise redis shopping-cart

按照本教程,我正在使用redis构建购物车:http://www.sitepoint.com/build-online-store-rails/

我正在使用带设计的guest_user,并通过方法" move_to(@user)"将访客用户的数据移动到新创建的用户,这可以正常工作。

在我的覆盖registrations_controller.rb中:

def create
  @user = User.new(user_params)
  if @user.save
    current_user.move_to(@user) if current_user && current_user.guest?
    sign_up("user", @user)
    redirect_to root_path
  else
    render :new
  end
end

在我的模型user.rb中:

def move_to(user)
  order_products.update_all(user_id: user.id) 
  user.shipping_name = shipping_name
end

我无法弄清楚我应该在我的move_to(用户)方法中添加哪个Redis命令,以便" transfert"购物车到新创建的用户。

以下是我的用户模型中的redis命令:

#to show the number of items in cart

def cart_count
  $redis.scard "cart#{id}"
end

#to calculate the total of the shopping cart

def cart_total_price
  total_price = 0
  get_cart_order_products.each { |order_product| total_price+= order_product.total_price }
  total_price
end

#to get each of the order_products added to the shopping cart

def get_cart_order_products
  cart_ids = $redis.smembers "cart#{id}"
  OrderProduct.find(cart_ids)
end

我知道应该使用哪种语法将gest_user购物车送到新创建的用户?

非常感谢提前!

0 个答案:

没有答案