0

ruby on rails 3.2.6 をインストールして、 rails serverを実行すると

127.0.0.1:3000 へのアクセスは機能しますが、たとえばコントローラーを生成すると

レールはコントローラープリンシパルを生成します

および 127.0.0.1:3000/somecontroller にアクセスすると、ブラウザーに次のエラーが表示されます: ルーティング エラー

一致するルートがありません [GET] "/principal" 使用可能なルートの詳細については、rake ルートを実行してみてください。

私は何をする必要がありますか?これは簡単に説明できますか?

4

2 に答える 2

2

問題は、アクションを指定していないため、コントローラーの「プリンシパル」が空であり、同様の名前でビューが作成されず、ルートが作成されないことです。

あなたがする必要があります:

rails generate controller principal index [show] [edit] [update] [create] [destroy]

コントローラー名の後の名前はアクション名です。コントローラーを単数で「プリンシパル」と言ったので、単数のリソースがあることを意味する場合があります。複数形にしたい場合は、必ず「コントローラー プリンシパル」と言ってください。

ルートは次のように表示されます。

resource :principal [ or :principals or multiple Restful routes ]
于 2012-07-27T23:03:13.903 に答える
1

config/routes.rbを編集して、リクエストをルーティングするコントローラーをルーターに伝える必要があります。Railsの標準はRESTfulルートを使用することであり、あなたが示した例では、これは単一のプリンシパルリソースに相当します。したがって、次を追加する必要があります。

resource :principal

このリソースの一連の RESTful ルートを生成します。次のようにして生成されたルートを確認できます。

rake routes

REST を気にしない場合は、単純に追加できます (PrincipalController に index メソッドがあると仮定します)。

match 'principal' => 'principal_controller#index'

ルーティングの詳細については、Rails ガイドのこの章を参照してください。

http://guides.rubyonrails.org/routing.html

次の例のように、 rails generate コントローラーコマンドに引数として名前を指定することで、コントローラーとルートでメソッドを同時に生成することもできます。

rails generate controller principal index
于 2012-07-27T23:07:29.807 に答える