1

Tasksadmins と Workers の 2 つのコントローラーがあります。

2 つのルートを定義しましたが、問題があると誰かに言われました。

誰かが私に何が問題なのか教えてもらえますか?

TODOLIST::Application.routes.draw do
  devise_for :users

  resources :tasksadmins
  root to: "tasksadmins#index"

  resources :workers
  root to: "workes#index"
end
4

2 に答える 2

3

rootindexコントローラの動作を意味するものではありません。代わりに、それは本質的にホームページを意味します:私が行くときにどのようなアクションが呼び出されhttp://www.example.com/ますか?

したがって、1つを定義することだけが意味があります。現在、との両方をroot指しているので、あまり意味がありません。Railsはそのうちの1つを選択するだけですが、それはおそらくあなたが探している動作ではありません。http://www.example.com/tasksadmins#indexworkers#index

resourcesルートを改良しようとしているのではないかと思いますが、必要はありません。resources :workersすでに、をhttp://www.example.com/workers指すルートを定義してworkers#indexいるので、ワーカーに必要なのはその線だけです。

ただし、http://www.example.com/と同じワーカーリストをポイントするhttp://www.example.com/workers場合root 'workers#index'は、まさにその通りです。

于 2013-01-01T17:23:32.177 に答える
3

ルーティング DSLのrootメソッドを使用すると、アプリケーションまたは特定の名前空間のデフォルト ルートを定義できます。複数の「ルート」ルートを持つことはできません。

リソースのデフォルト ルート (例: /workers) は、対応するコントローラー ( ) のインデックス アクションにルーティングされWorkersControllerます。コントローラーごとに指定する必要はありません。

メソッドを複数回使用する場合はroot、最後に発生したものが使用されます。ここになりますworkers#index。ルートを単純化します:

TODOLIST::Application.routes.draw do
  root to: "workers#index"

  devise_for :users

  resources :tasksadmins
  resources :workers

end
于 2013-01-01T17:19:44.020 に答える