我无法将我的购物车图标链接到用户的实际购物车而没有插入确切的数字ID。这是我想要链接到用户购物车显示的代码:< / p>
<li class="navtxt"id='cart-button'><%= link_to(image_tag("cart.png"),@cart)%></li>
目前,它只是暂时闪烁屏幕并将我带回主页的顶部。
我的购物车控制器节目以:
开头def show
begin
@cart = Cart.find(params[:id])
在我的应用程序控制器中使用CurrentCart方法,该方法包含在我的购物车控制器中:
private
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
和
resources :carts
在routes.rb
中有什么见解?谢谢。我有这个开放的,所以如果有任何代码可以帮助我找到解决方案,我会立即使用它。
编辑 - 添加了前面的代码
class CartsController < ApplicationController
include CurrentCart
before_action :set_cart, only: [:show, :edit, :update, :destroy]
rescue_from ActiveRecord::RecordNotFound, with: :invalid_cart
# GET /carts/1
# GET /carts/1.xml
答案 0 :(得分:1)
试试这个:
<li class="navtxt"id='cart-button'>
<%= link_to @cart do %>
<%= image_tag("cart.png") %>
<% end %>
</li>
并且由于您希望在导航中显示购物车,因此最好在应用程序控制器中进行设置。您可以通过以下方式完成:
before_filter :set_cart
def set_cart
@cart = current_cart
end