如何将产品ID保存到用户模型列

时间:2016-06-07 21:56:13

标签: ruby-on-rails ruby-on-rails-4 shopping-cart

所以我在rails应用程序中构建了一个产品系统和一个购物车。我的目标是将购物车中保存的产品与用户模型相关联。

我很难找到一个解决方案,我怎样才能将购物车中的商品ID从每个current_user保存到用户模型的列中?

因此,在我的购物车视图页面中,有一个购物车中所有已添加产品的列表,我想添加一个保存按钮,该按钮将按其ID保存这些产品。 例如,如果current_user在购物车中使用ID 1,2,3并点击购物车中的“保存”按钮广告三个产品,我希望能够将这三个ID按整数保存到“addproducts”列中。当前用户。 这是我的cart_controller的一部分:

def additems
    id = params[:id]
    if session[:cart] then
      cart = session[:cart]
    else
      session[:cart] = {}
      cart = session[:cart]
    end
    if cart[id] then
      cart[id] = cart[id] + 1
    else
      cart[id] = 1
    end
  redirect_to :action => :index
  end

和我的产品控制器的一部分(通过脚手架生成):

class ItemsController < ApplicationController
  before_action :set_item, only: [:show, :edit, :update, :destroy]

  respond_to :html, :json, :js

  def index
    @products = Product.where(availability: true)
  end 

  def show
  end 

  def new 
    @product = Product.new
  end 

  def edit
  end 

  def create
    @product = Item.new(item_params)
    @product.save
    respond_with(@product)
  end 

这可能实现吗?

(如果有任何帮助,我正在使用标准的Devise设置)

1 个答案:

答案 0 :(得分:0)

如何将多个项目保存到单个列“addedproducts”?我认为最好的解决方案是在购物车中添加外键。使购物车属于用户。并且用户有很多推车。就像你可能创建了Cart模型和Item模型一样。通过两者之间的正确关系......(如果这样做,您将不得不通过引用User将新迁移添加到购物车模型。)