2010-11-16 71 views
2

好吧,我在這裏有一個奇怪的模式,我不明白。Rails STI Association和嵌套資源

我有一個以CallList爲基礎模型設置的STI,並且繼承City & State。一個城市屬於一個國家(一個州有很多城市)。

一個廣告系列有很多通話清單,所以我想將它們全部顯示出來。我循環campaign.call_lists,有時得到城市,有時是國家。當我要鏈接到他們,我做

link_to call_list.name, call_list 

,如果我有這些航線的正常工作:

resources :cities, :states 

當我裏面州窩城市,不過,助手的link_to無法弄清楚適當的路線。有沒有一個簡單的方法來做到這一點,或者我將不得不做一些手動路徑幫手建設?

+0

當你說「鳥巢城市裏指出:」你在你的意思航線, 對?我假設這些關聯已經正確設置了? – Gareth 2010-11-16 13:43:06

+0

是的,協會工作得很好,我的路線是嵌套的。所以如果我的call_list是一個狀態,我可以只是link_to狀態,但是如果它是一個城市,我需要做state_city_path(城市),而不僅僅是city_path(城市)。我可以在視圖中添加一個case語句,但這很醜陋,我想知道是否有某些東西在軌道或插件中,可以從路線中找到它? – 2010-11-16 13:46:05

+0

你需要檢查一下call_list的類型,然後使用正確的路由..它不能直接作爲路由嵌套.. – 2012-02-10 05:31:40

回答

0

你需要檢查的一種call_list,然後用適當的route..it不能直接作爲路由嵌套..

link_to call_list.name, call_list.is_a?(City) ? call_list : state_city_path(call_list)