2013-05-09 188 views
0

我有一些嵌套的資源。這裏有一個例子:Rails路由,在資源路徑中使用非model_id的路由

resources :contests do 
    resources :scoring_periods do 
     resources :entries 
    end 
    end 

我最終想有一個看起來像下面這樣的URL:

/contests/1/scoring_periods/10/entries/new 

這裏美中不足的是,在scoring_periods的/ 10 /不是ScoringPeriod#ID 。在這種情況下,它是另一個名爲period_count的屬性。我希望能夠在URl中引用period_count而不是ID,因爲我的系統後來可能有數百萬個ID,並且在那裏列出它並不直觀。實際的period_count數字對參加本次比賽的用戶更有意義。

有沒有辦法在routes.rb中搜索資源條目,以允許我通過:scoring_period_id以外的屬性引用scoring_periods?

+1

你知道嗎,資源不應該有深刻的不止一個水平? (這很舊但很實用:http://weblog.jamisbuck.org/2007/2/5/nesting-resources) – Pigueiras 2013-05-09 22:05:18

回答

1

像這樣的東西應該工作:

resources :contests do 
    scope path: '/scoring_periods/:period_count/' do 
    resources :entries 
    end 
end