Rails 3为单个控制器和多个资源路由



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

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

countries_path将引导我在DashboardController中进行show_countries操作,并由'/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"}

任何想法?

你只需要跳出"资源"的框框:

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

相关内容

  • 没有找到相关文章

最新更新