1

現在、これらのルートを設定しています:

namespace :api do
  namespace :v1 do
    resources :users do
      match 'api/v1/users/all'
    end
    resources :sessions
  end
end

「all」というユーザーコントローラーでカスタムアクションを設定しようとしています。

一致するルートを取得するにはどうすればよいですか? 私はこれらを試しましたが、ルートエラーは発生しません:

resources :users do
  match 'api/v1/users/all' => "users#all" (also "api/v1/users#all" and "api_v1_users#all"
end

カスタム アクションに接続できるルートは何ですか?

ありがとう

4

1 に答える 1

2

追加する必要がありますcollection

namespace :api do
  namespace :v1 do
    resources :users do
      collection do
        get 'all'
      end
    end
    resources :sessions
  end
end

namespaceandメソッドのresources呼び出しによって階層が作成されます。ブロックでネストされたルートは、resource :usersその祖先のパスをたどります。はcollection、リソースの単一インスタンスではなく、リソース コレクションにネストされたルートを作成します。

/api/v1/users/all

推奨読書: http://guides.rubyonrails.org/routing.html#adding-collection-routes

于 2012-12-06T18:46:42.627 に答える