0

訪問localhost:3000すると、私は典型的なものを手に入れています:

[GET]「/」に一致するルートはありません

そのエラー画面を見たくありません。私はすでに試してlocalhost:3000/passbook/v1/passes/いますが、まだ何もしていないので、次のように入力しました。

rake routes

そしてこの出力を得ました:

passbook GET    /passbook/v1/passes/:pass_type_identifier/:serial_number(.:format)                                           passbook/passes#show {:pass_type_identifier=>/([\w\d]\.?)+/}
             GET    /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier(.:format)                passbook/registrations#index {:pass_type_identifier=>/([\w\d]\.?)+/}
             POST   /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier/:serial_number(.:format) passbook/registrations#create {:pass_type_identifier=>/([\w\d]\.?)+/}
             DELETE /passbook/v1/devices/:device_library_identifier/registrations/:pass_type_identifier/:serial_number(.:format) passbook/registrations#destroy {:pass_type_identifier=>/([\w\d]\.?)+/}
passbook_log POST   /passbook/v1/log(.:format)                                                                                   passbook/logs#create

どうすればこれを解決できますか?

4

2 に答える 2

1

ルート パスが何であるかをまだ Rails に伝えていません。あなたは言うことによってこれを行うことができます

root to: "passes#show"

config/routes.rb で。その後、rake routes出力に次のように表示されます。

root      /      passes#show

それならうまくいくはずです!


追加のヒント

これはあなたの質問には行き過ぎかもしれませんが、テスト主導のアプローチに従って、最初に仕様を作成する必要があります。

describe "custom routing" do
    it "shows the root page" do
        get("/").should route_to("passes#show")
    end
end

これにはRSpecを使用します。ルート自体を作成する前にコンソールでテストを実行$ rspecし、適切な場所でテストが失敗することを確認します。

次に、上記のルートを実装し、テストを再度実行します。動作するはずです。このようにして、要件を満たすのに十分なコードを作成したこと、およびルート パスにアクセスできるのは実際に作成したコードであることを確認します。

于 2013-01-13T13:40:55.843 に答える
0

これは誰かから受け継いだ Rails アプリですか?

あなたが提供した出力を考えると、次rake routesのようなURLlocalhost:3000/passbook/v1/passes/<EXAMPLE_PASS_TYPE_IDENTIFIER>/<EXAMPLE_SERIAL_NUMBER>は、出力の最初の行のルールに基づいて機能するはずです.EXAMPLE_PASS_TYPE_IDENTIFIEREXAMPLE_SERIAL_NUMBER

のエラー メッセージは、出力に のマッピングがないためNo route matches [GET] "/です。localhost:3000rootrake routes

ファイルを変更して、config/routes.rbファイルの下部に次の行を追加できます。

root :to => "<controller_name>#<action_name>"

例えば:

root :to => "passbook/index"

メソッドがあるpassbooks_contoller.rb場合index

ドキュメントからレールルーティングの詳細を学ぶのが最善です。Rails チュートリアルを読んで、Rails フレームワークを十分に理解することをお勧めします。

于 2013-01-13T13:43:12.460 に答える