【问题标题】:rails2 nested namespace with root path to different controllerrails2 嵌套命名空间,具有不同控制器的根路径
【发布时间】:2011-11-30 01:19:55
【问题描述】:

在 rails 3.1.1 中,我在 routes.rb 中将 admin_root_path 设置为:

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

哪些路由到 admin/base_controller 上的索引操作。 但是由于我无法控制的原因,我不得不将我的 rails 3 应用程序降级到 v2.3.14。 我试过了:

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

没有运气。我知道问一个“让我的新代码变旧”的问题很奇怪,但到底是什么。我想这就是为什么我不是老板??

谢谢, 克里斯

【问题讨论】:

    标签: ruby-on-rails-3.1 ruby-on-rails-2


    【解决方案1】:

    据我所知,您有两个选择:

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

    上面的内容将提供与 Rails 3 中相同的 admin_root_path,但无法使用多种格式。 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
    

    上面为 Rails 2.3.14 中的admin_root_path 提供了这个,这与我在 Rails 3.0.11 中看到的完全一样:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-08
      • 2012-05-14
      • 1970-01-01
      • 2017-01-18
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多