0

我有多个资源(:countries, :states, :schools等),但想要一个“仪表板”控制器来处理所有操作。

我希望能够做到以下几点:

countries_path将指导我在 中show_countries采取行动,DashboardController并且可以通过'/dashboard/countries.

对于州、学校等也是如此。

我已经阅读了 Rails 路由,并且一直在搞乱各种选项。我最终在我的routes.rb文件中得到以下内容:

scope "toolbox" do
  resources :countries, :controller => "toolbox", :only => :index do
    get 'show_countries', :on => :collection
  end

  ...
end

对于上面的代码,运行rake routes为我提供了以下信息:

show_countries_countries GET    /toolbox/countries/show_countries(.:format)  {:action=>"show_countries", :controller=>"toolbox"}
countries GET    /toolbox/countries(.:format)  {:action=>"index", :controller=>"toolbox"}

我试过这个:

scope "toolbox" do
  resources :countries, :controller => "toolbox", :only => :index, :action => "show_countries"
end

只是为了得到这条路线:

countries GET    /toolbox/countries(.:format)  {:action=>"index", :controller=>"toolbox"}

我真正想要的是:

countries GET    /toolbox/countries(.:format)  {:action=>"show_countries", :controller=>"toolbox"}

有任何想法吗?

4

1 回答 1

1

您只需要跳出“资源”框框思考:

scope "toolbox", :controller => :toolbox do
  get 'countries' => :show_countries
  get 'states' => :show_states
  get 'schools' => :show_shools
end

应该输出这样的路线:

countries GET /toolbox/countries(.:format) toolbox#show_countries
于 2012-12-28T21:55:07.443 回答