3

奇妙なエラーに遭遇しました。これがバグかどうかはわかりません。しかし、私はこれまでこの奇妙な行動に遭遇したことはありません。

resource :watches

このような奇妙なルーティング テーブルを作成します。

        watches POST   /watches(.:format)                         watches#create
    new_watches GET    /watches/new(.:format)                     watches#new
   edit_watches GET    /watches/edit(.:format)                    watches#edit
                GET    /watches(.:format)                         watches#show
                PUT    /watches(.:format)                         watches#update
                DELETE /watches(.:format)                         watches#destroy

ID パラメータと混乱したアクションが表示されないため

同時に:

resources :mibs

適切なルートを作成する

           mibs GET    /mibs(.:format)                            mibs#index
                POST   /mibs(.:format)                            mibs#create
        new_mib GET    /mibs/new(.:format)                        mibs#new
       edit_mib GET    /mibs/:id/edit(.:format)                   mibs#edit
            mib GET    /mibs/:id(.:format)                        mibs#show
                PUT    /mibs/:id(.:format)                        mibs#update
                DELETE /mibs/:id(.:format)                        mibs#destroy

私はそれがどういうわけかインフレクターの問題かもしれないと思ったが、「時計」の代わりに「ロケット」を使ってみても同じ結果が得られる:

        rockets POST   /rockets(.:format)                         rockets#create
    new_rockets GET    /rockets/new(.:format)                     rockets#new
   edit_rockets GET    /rockets/edit(.:format)                    rockets#edit
                GET    /rockets(.:format)                         rockets#show
                PUT    /rockets(.:format)                         rockets#update
                DELETE /rockets(.:format)                         rockets#destroy

最初の 2 つのリソース (サーバーと MIB) 以外はすべて、このような結果になります。

おそらくどこかでルーティングキャッシュが壊れていますか?

4

1 に答える 1

5

resourceはシングルトン リソースを示します。つまり、Rails に対して、ユーザーごとにウォッチが 1 つしかないことを伝えているため、ID を渡しても意味がありません。

resourcesID が添付されたルートを取得するための標準的な呼び出しです。

したがって、基本的に、問題はインフレータの問題ですが、ルートの名前ではなく、resourceまたはの場合です。resources詳細については、Ruby on Rails ルーティング ガイド を参照してください。シングルトン リソースとより一般的な種類のリソースの違いをうまく説明しています。

于 2012-09-02T04:44:36.647 に答える