从rails路由中的链路中删除id

时间:2013-09-05 13:41:51

标签: ruby-on-rails ruby-on-rails-4

我想将“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

1 个答案:

答案 0 :(得分:4)

使用resource方法。

尝试这种方式:

scope 'store' do
  resource :cart, only: [:show, :destroy]
end

这是API docs

<强>更新

另外,请避免将@cart传递给cart_path。控制器应该弄清楚如何在url中获取没有id的资源实例。

获取单一资源实例的常用方法是在会话中存储数据库ID,或者如果您有一些用户身份验证框架 - 将其链接到当前用户(大多数框架最终会将用户ID放入会话中)。