1

ルートを名前空間に設定したので、次のようになります。

root to: "home#index"

namespace :users do
  root to: "profile#index"
  resources :registrations
  resources :sessions
end

namespace :admin do
  root to: "base#index"
end

rake routes |grep root
                root          /                               home#index
          admin_root          /admin(.:format)                admin/base#index
          users_root          /users(.:format)                users/profile#index

私のヘッダーナビゲーションでは、= link_to "home", root_path

すべてが開発モードではうまく機能しますが、本番環境では完全に壊れています

No route matches {:controller=>"users/home"}セッション/登録コントローラー(ユーザー/セッション/新規)にアクセスしようとすると取得します

ヘッダーのroot_pathは、名前空間homeでコントローラーを取得しようとしますusers

前もって感謝します

4

2 に答える 2

0

それぞれのルートパスを区別して、次のように試してください

root to: "home#index" , :as => home_root

namespace :users do
  root to: "profile#index" , :as => users_root
  resources :registrations
  resources :sessions
end

namespace :admin do
  root to: "base#index" , :as => admin_root
end

次のようなパスを使用します:home_root_path、users_root_path、admin_root_path

于 2012-05-15T11:31:54.797 に答える
0

ユーザーの名前空間にはホーム コントローラーはなく、ユーザーの名前空間にはプロファイル コントローラーがあります。

「users/profile#index」にアクセスするには、users_root_path が必要です。

しかし、おっしゃる通り、root_path は "home#index" に移動することを期待しています。

于 2012-05-15T12:01:13.540 に答える