如何在命名空间中指定模块?

时间:2015-05-27 21:27:43

标签: ruby-on-rails module routing namespaces

我想做类似的事情:

namespace :dashboard do
  get 'speed'
  get 'engine'
  get 'oil'
  get 'errors', :to => 'warn_system#errors', :module => false
end

只有错误链接到另一个控制器。

dashboard_speed  GET  /dashboard/speed(.:format)  dashboard#speed
dashboard_oil    GET  /dashboard/oil(.:format)    dashboard#oil
dashboard_engine GET  /dashboard/engine(.:format) dashboard#engine
dashboard_errors GET  /dashboard/errors(.:format) dashboard/warn_system#errors {:module=>false}

对于最后一条记录,我希望它是

dashboard_errors GET  /dashboard/errors(.:format)  warn_system#errors

我该怎么办? 如果重要的话,我正在使用Rails。

2 个答案:

答案 0 :(得分:1)

对于Rails 3,试试这个:

  scope '/dashboard' do
    get 'errors', :to => 'warn_system#errors'
  end

答案 1 :(得分:0)

要路由到命名空间内的其他控制器,请指定控制器的绝对路径。如果warn_system控制器位于根命名空间中,请使用:

namespace :dashboard do
  get 'errors', :to => '/warn_system#errors'
end

更新

根据您的评论,您似乎想要使用:

namespace :dashboard do
  get 'errors', :to => '/dashboard/warn_system#errors'
end