我想将“cart /:id”链接到“购物车”,这在输入网址“商店/购物车”时可以正常工作 但是当我使用链接时,它总是包含id
= link_to 'view cart', cart_path(@cart)
结果是网址'store / cart / 1'
my routes.rb
scope 'store' do
resources :carts, only: [:destroy]
match 'cart', to: 'carts#show', via: :get
end
答案 0 :(得分:4)
使用resource
方法。
尝试这种方式:
scope 'store' do
resource :cart, only: [:show, :destroy]
end
这是API docs
<强>更新强>
另外,请避免将@cart
传递给cart_path
。控制器应该弄清楚如何在url中获取没有id的资源实例。
获取单一资源实例的常用方法是在会话中存储数据库ID,或者如果您有一些用户身份验证框架 - 将其链接到当前用户(大多数框架最终会将用户ID放入会话中)。