1

やった

rails generate controller home index

しかし、この行をroutes.rbに追加します

get "home/index"

Rails は URL からコントローラー/メソッドを自動的に推測できると思いましたか? すべての get/post ページを指定する必要があるのはなぜですか?

ここに私の完全な routes.rb ファイルがあります:

Callisto2::Application.routes.draw do
  root :to => "home#index"
  resources :assets
end

ルート「/」は正常に動作します。/assets/* も同様です。

/home/index の問題は何ですか? エラーが発生します:

ルーティング エラー

No route matches [GET] "/home/index"

利用可能なルートの詳細については、rake ルートを実行してみてください。

rake routes(Apacheユーザーとして実行)次の出力が得られます。

root  / home#index

明確にしていただきありがとうございます。何が欠けているのかわからない。

編集:私はこれを明確にしませんでした:そのファイルをきれいに保つために、routes.rbから手動で get /home/index を削除しました。

4

2 に答える 2

4

ルートファイルの下部に、いわゆるキャッチオールルートを追加するために使用されるレール:

match ':controller(/:action(/:id(.:format)))'

これらのURLには、「自動」または魔法のようなものは何もありませんでした。すべてのRailsアプリがroutes.rbでこのルートを使用して開始しただけです。

これは、少なくとも部分的には、getを介してすべてにアクセスできるようにするため、好意を失っています。

resources :books

適切なhttp動詞を使用して各ルートを追加します。ルートを明示的にリストすることも、レールが始まったときよりもはるかに冗長ではありません。

于 2012-06-21T17:15:33.043 に答える
1

コントローラがそうでhomeあり、アクションがindexあなたのパスである場合、それはただ/homeです。

詳細については、こちらをご覧ください。

于 2012-06-21T17:12:46.013 に答える