4

このコードは何をするのか説明してもらえますか?

resources :products do
 get :who_bought, :on => :member
end

完全なコードは本のpragmatigプログラミングからのものですが、なぜそのコードを使用するのかは説明されていません。 ":on =>:member" "

Depot::Application.routes.draw do
  resources :orders



resources :line_items
 post 'line_items/decrease'


resources :carts


get "store/index"

resources :products do
   get :who_bought, :on => :member
end

root :to => 'store#index', :as => 'store'

ありがとう

4

1 に答える 1

4

合格:on => :memberとは、データベース内の特定のレコード(この場合は製品)で作業していることを意味します。したがって、ルートが生成するURLは

/products/:id/who_bought

これは、idが:idである製品を取得し、who_boughtアクションを処理する必要があることを意味します。カウンターパート:on => :collectionは、アクションが製品のリストで機能することを期待しているため、URLは次のようになります。

/products/who_bought

メンバーをコレクションに変更した場合。単一のレコードで作業することを想定していないため、ルートに:idを渡す必要がないことがわかります。

于 2013-02-18T00:37:33.627 に答える