2013-10-09 150 views
0

我有軌道4路由的一些問題。目前路由是這樣的。導軌4路由,刪除默認段

analytic_practiceday_path POST /analytics/:analytic_id/practiceday(.:format) analytics#practiceday 
    analytic_practiceuser_path GET  /analytics/:analytic_id/practiceuser(.:format) analytics#practiceuser 

我想要:analytic_id部分被刪除。因此,它看起來像這樣

analytic_practiceday_path POST /analytics/practiceday analytics#practiceday 
    analytic_practiceuser_path GET  /analytics/practiceuser analytics#practiceuser 

我當前的代碼是

resources :analytics, :only =>"index" do 
    post 'practiceday', to: "analytics#practiceday" 
    get 'practiceuser', to: "analytics#practiceuser" 
end 

我知道這是可能的明確聲明它,

get '/analytic/practiceday', to: "analytics#practiceday", as: "analytic_practice_day" 

但我有20〜30條航線是定義。如果有人能告訴我一個更好的辦法,我會很感激。

謝謝。

回答

1

如何:

resources :analytics, only: :index do 
    collection do 
    post :practiceday 
    get :practiceuser 
    end 
end 
1

嘗試

post 'practiceday', to: "analytics#practiceday", on: :collection 

編輯:這將扭轉從analytic_practiceday_path你的路由的語言才能practiceday_analytic_path。我不知道這對你是否是一個交易斷路器。如果是這樣,你可能會被迫用as指定每個路由。