2016-06-07 5 views
0

그래서 필자는 레일 시스템에 제품 시스템과 장바구니를 구축했습니다. 내가 가진 목표는 카트에서 저장된 제품을 사용자 모델과 연관시키는 것입니다.제품 ID를 사용자 모델의 열에 저장하는 방법

각 current_user에서 사용자 모델의 열로 카트의 항목 ID를 저장하는 방법에 대한 해결책을 찾기 위해 고심하고 있습니까?

내 장바구니보기 페이지에는 장바구니에 추가 된 모든 제품의 목록이 있으며 해당 제품을 해당 ID로 저장하는 저장 버튼을 추가하려고합니다. 예를 들어, current_user가 id, 1,2,3을 가진 장바구니에있는 세 개의 제품을 광고하고 장바구니의 "저장"버튼을 클릭하면 정수를 기준으로 세 개의 id를 "addedproducts"열에 저장할 수 있기를 원합니다. current_user. 이 내 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 

이 가능 달성?

는 하나의 컬럼에 "addedproducts를"여러 항목을 저장하려면 어떻게

답변

0

(나는 그것이 어떤 도움이 있다면 표준 고안 설정을 사용하고 있습니다)? 제일 좋은 해결책은 외래 키를 장바구니에 추가하는 것입니다. 장바구니를 사용자에게 속하게 만들기. 카트가 많은 사용자. 카트 모델과 아이템 모델을 만든 것과 같은 방법입니다. 두 가지 사이의 적절한 관계로 ... (사용자를 참조하면 카트 모델에 새로운 마이그레이션을 추가해야합니다.)

+0

고마워요! 그렇지만 사용자 모델에서 다른 열에 세 개의 항목을 저장하려면 어떻게해야합니까? –