2011-04-05 104 views
3

多態性資源我有一個多態腳本類,像這樣:路由與Rails的3

Script 
    belongs_to :scriptable, :polymorphic => true 
    ... 
end 

項目和測試用例是包含這個類的人。腳本也有曲別針,是多版本所以基本上,我有一個現有的航線已經爲腳本:

resources :test_cases do 
    resources :script do 
    resources :script_versions 
    end 
end 

這條路之前就已經存在,但我們的應用程序的一個新功能是使項目還編寫腳本。這是否意味着我必須將相同的路線添加到項目中,例如:

resources :projects do 
    resources :script do 
    resources :script_versions 
    end 
end 

如果將來有其他可編寫腳本的類會發生什麼情況?我每次都必須創建類似的路線嗎?它看起來很乾淨,但對我來說似乎並不乾燥。多態性應該幫助我在這裏,不是嗎?是否有多態的方式來聲明路線?

+0

我尋找一個答案到同一個問題。發生在我身上的一件事情是多態路由可能希望被「倒置」,即/ scripts /:id /:parent_model。在它上面工作。如果我找出答案,我會發佈一個答案。 – pduey 2011-10-13 16:08:02

+0

你有沒有解決過這個問題?我有一個類似的問題,一直沒有找到乾的方式來做到這一點。 – KobeJohn 2012-01-02 10:10:08

+0

還沒有。如果您需要,我們可以提供獎勵。目前我並不處於重構模式,但希望能在幾周內完成 – corroded 2012-01-03 05:56:23

回答

0

你可以這樣做:

[:test_cases, :projects].each do |resource| 
    resources resource do 
     resources :script do 
      resources :script_versions 
     end 
    end 
end 

也許不是超級優雅,但至少它的幹

0

您可以通過多個名稱resources這樣

resources :test_cases, :projects do 
    resources :script do 
    resources :script_versions 
    end 
end