2012-12-28 145 views
0

我有多個資源(:countries, :states, :schools等),但希望單個「Dashboard」控制器來處理所有操作。Rails單個控制器和多個資源的3條路由

我想能夠做到以下幾點:

countries_path將指導我在DashboardController一個show_countries行動,並'/dashboard/countries是入店。

同樣的狀態,學校等

我on Rails的路由念起來已經與各種選項瞎搞。我結束了以下在我routes.rb文件:

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 
只有

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

    ... 
end 

運行rake routes讓我對上面的代碼如下得到這條路線:

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

我真正想要的是這樣的:

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

任何想法?

回答

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 
+0

完美。謝謝! – mmichael