1

私はレールで非常に入門コースを行っており、これまでに次のことを完了しました

  1. 新しいRailsアプリを作成しました: rails new shovell(「shovell」はアプリの名前です)
  2. すべての宝石とそうでないものをインストールしました:bundle install
  3. モデルを生成しましたrails generate model Story name link
  4. コントローラーを生成しましたrails generate controller Stories index

をポイントするとhttp://localhost:3000/stories、「Routing Error No route matches [GET] "/stories"」というエラーが表示されます。

そして、以下は私のものroutes.rbです:

Shovell::Application.routes.draw do
  get "stories/index"
# a bunch of comments
end

したがって、私が何を間違っているのか、なぜデフォルトのウェルカムメッセージが表示されず、エラーが発生するのかわかりません。ご協力いただきありがとうございます!

4

2 に答える 2

2

ただし、次の場合:

http://localhost:3000/stories/index

レールの方法ではありませんが、ページを取得できます。

まず、レールルーティングガイドを読んで理解してください

次に、コードを修正するために、ルーティングで次のように記述できます

Shovell::Aplication.routes.draw do
  resources :stories
end

または、残りのリソースの代わりにカスタムルートが必要な場合

Shovel::Application.routes.draw do
  match "stores", to: "my_controller#my_action"
end

また、カスタムルートに名前を付けることもできます

Shovel::Application.routes.draw do
  match "stores", to: "my_controller#my_action", as: :store_index
end

したがって、名前を付ければ、Rails アプリでルート名を使用できます

link_to("Store Index", store_index_path)
于 2012-12-06T02:31:29.983 に答える
0

へのルートを定義しましたが、 へのルートを定義し/stories/indexていないため/stories、失敗しています。

このルートを次のように定義する必要があります。

 get '/stories', :to => "stories#index"

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

于 2012-12-06T02:28:55.707 に答える