我正在通过“使用 Rails 进行敏捷 Web 开发”一书创建 depot 应用程序。我想更改它的功能,以便购物车不再出现在侧栏中,而是得到一个声明,其中包含“当前在您的购物车中的 (x) 个项目”。
我有这个代码:
line_items 控制器(购物车中的物品):
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url }
format.js { @current_item = @line_item }
format.json { render json: @line_item,
status: :created, location: @line_item }
else
format.html { render action: "new" }
format.json { render json: @line_item.errors,
status: :unprocessable_entity }
end
end
end
和推车控制器:
def show
begin
@cart = Cart.find(params[:id])
rescue ActiveRecord::RecordNotFound
logger.error "Attempt to access invalid cart #{params[:id]}"
redirect_to store_url, notice: 'Invalid cart'
else
respond_to do |format|
format.html # show.html.erb
format.json { render json: @cart }
end
end
end
如何从应用程序布局视图中引用购物车,以便将“(x)项”更改为购物车中的当前项目数?我已经尝试过@total_cart.line_items
以及我能想到的所有其他变化。
编辑:我在购物车模型中有代码current_item.quantity
- 我将如何在应用程序布局视图中引用它,因为这是我想要的值?谢谢!