0

私はリソースとして本を持っており、id、ean、isbnはそのプロパティです。books/id/1またはとしてbooks/isbn/1212100000アクセスしたいbooks/ean/1313911

私のroutes.rbには、次のように書いています。

   resources :books do
        collection do
            get 'isbn'
            get 'ean'
            get 'id'
        end
    end

しかし、lにアクセスしようとすると、次ocalhost:3000/books/id/1のようになります/books/id/1

でもアクセスできlocalhost:3000/books/idます。これは、routes.rbに個別のマッピングを記述する必要があることを意味しますが、リソース宣言の使用法は何ですか?

明示的なマッピングを記述せずにこれを行うように誰かが私に提案できますか?

4

2 に答える 2

2

コレクション ルートは複数の結果を返すことが想定されているため、id パラメータはありません。ID が必要な場合は、メンバー ルートを使用します。

resources :books do
    member do
        get 'isbn'
        get 'ean'
        get 'id'
    end
end
于 2012-06-20T11:20:50.510 に答える
-1

追加

match ':controller/:action/:id/'

あなたのroutes.rbに、終わり近くに。

于 2012-06-20T11:22:29.313 に答える