我正在尝试使用has_many通过关联创建一个非常简单的购物车示例。
我有一个购物车型号:
class Cart < ActiveRecord::Base
has_many :cart_products
has_many :products, :through => :cart_products
end
cart_products模型:
class CartProduct < ActiveRecord::Base
belongs_to :cart
belongs_to :product
end
产品型号:
class Product < ActiveRecord::Base
has_many :cart_products
has_many :carts, :through => :cart_products
end
我有一个具有添加功能的推车控制器:
def add
@product = Product.find(params[:product_id])
if request.xhr?
@cart_product = @cart.add(params[:id])
render :action => "add"
else
render
end
end
在路由配置文件中:
resources :cart do
post 'add'
end
在应用程序控制器中,我有一个初始化购物车的功能:
def initialse_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
我不确定的是如何在产品控制器中传递购物车ID?
我知道你可以做@ cart.products。但你怎么做呢?
感谢。