Rails路由:嵌套的范围/命名空间

时间:2011-08-30 18:06:15

标签: ruby-on-rails ruby-on-rails-3 routing namespaces scope

现在我有一个admin.domain.com子域,其中有一个模块范围:

  constraints(AdminDomain) do
    scope :module => "admin" do
      resources :visitors
    end
  end

这使得admin子域中的所有请求都在app / controllers / admin /.

中命中控制器

我现在要做的是:

  constraints(AdminDomain) do
    scope :module => "admin" do
      resources :visitors
      scope "history", :as => "history" do
        resources :visitors
      end
    end
  end

最终目标是使admin.domain.com/history/visitors命中控制器:app / controllers / admin / history / visitors_controller.rb。

然而,此路径​​仍然会查找app / controllers / admin / visitors_controller.rb。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

我正在寻找

namespace

  constraints(AdminDomain) do
    scope :module => "admin" do
      resources :visitors
      namespace :history do
        resources :visitors
      end
    end
  end

我必须在Admin::History::VisitorsController

中定义app/controllers/admin/history/visitors_controller.rb

答案 1 :(得分:0)

定义特定控制器的简单方法就像:

:controller => admin/history/visitors