rails2 вложенное пространство имен с корневым путем к другому контроллеру - PullRequest
1 голос
/ 30 ноября 2011

В rails 3.1.1 я установил admin_root_path в моем rout.rb как:

namespace :admin do
  root :to => "base#index"
  resources :users
end

, который направляет к действию индекса на admin / base_controllerНо по независящим от меня причинам я должен понизить приложение rails 3 до версии 2.3.14.Я попробовал:

map.namespace :admin do |admin|
  admin.resources :users, :controller => "base", :action => "index"
end

без удачи.Я знаю, что странно задавать вопрос «сделать мой новый код старым», но какого черта.Наверное, поэтому я не начальник ??

Спасибо, Крис

1 Ответ

1 голос
/ 09 февраля 2012

Насколько я вижу, у вас есть два варианта:

map.namespace :admin do |admin|
  admin.root :controller => "base"
  admin.resources :users, :controller => "users", :action => "index"
end

Выше вы получите те же admin_root_path, что и в Rails 3, но без возможности иметь несколько форматов. rake routes показывает это как:

admin_root   /admin   { :controller => "admin/base", :action => "index" }

Если вы хотите использовать несколько форматов таким же образом, как в Rails 3, то я думаю, что это ваше единственное решение:

map.admin_root "/admin(.:format)", :controller => "admin/base", :action => "index"

map.namespace :admin do |admin|
  admin.resources :users, :controller => "users", :action => "index"
end

Выше приведено это для admin_root_path в Rails 2.3.14, что точно так же, как я вижу в Rails 3.0.11:

admin_root   /admin(.:format)   { :controller => "admin/base", :action=>"index" }
...