1

在我的 rails 应用程序中,我有这样的购物车控制器路线:

resources :carts

所以在布局中,根据我的逻辑,我有:

= link_to "Моя корзина", @cart

在浏览器中我看到例如:

******:3000/carts/112

但是,我可以将嵌套的 rails route 显示为 post-like 请求吗?所以我会有:

******:3000/carts/

还耙路线:

arts GET    /carts(.:format)                                                          carts#index
                                  POST   /carts(.:format)                                                          carts#create
                         new_cart GET    /carts/new(.:format)                                                      carts#new
                        edit_cart GET    /carts/:id/edit(.:format)                                                 carts#edit
                             cart GET    /carts/:id(.:format)                                                      carts#show
                                  PUT    /carts/:id(.:format)                                                      carts#update
                                  DELETE /carts/:id(.:format)                                                      carts#destroy
                             cart POST   /carts/:id(.:format)                                                      carts#show

我现在如何为我自己的方法编写它......但是如何与内置显示?

我需要更改显示路线,以便显示的 id 不是通过 url 作为 get-param 发送,而是作为请求中的 post-param ...

4

3 回答 3

2

你可以添加这样的路线(routes.rb)

前任:

resources :carts do
  member do
    post :add
 end
end

有关铁路路线的更多信息

于 2013-01-09T20:34:31.823 回答
1

resources方法只是放入一堆预定义的路由,如此所述。

具体来说,它添加了相当于

get '/carts/:id' => 'carts_controller#show'
post '/carts' => 'carts_controller#create'
...

如果您想使用一组不同的路由,请不要使用resources,而只需定义您自己的路由。

此外,您不能以这种方式向用户隐藏购物车 ID。如果请求中包含 ID,则表示用户可以看到它。他可能不得不使用 Firebug 或通过查看页面源而不是地址栏来查看它,但它仍然不是秘密或以任何方式受到保护。

于 2013-01-09T20:35:28.217 回答
-1

只需rake routes在您的控制台中运行并查看您拥有的路线。

您还可以在http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions阅读有关 RESTful 路由的更多信息

于 2013-01-09T20:28:53.893 回答