2012-06-10 76 views
0

我有一個多態資源可以屬於Project,Task或Subtask的討論。在多態關聯中顯示動作

有一次,我希望重新路由以展示討論控制器的動作。要做到這一點,我需要討論編號(我從params得到),我需要知道父母是什麼(我也從params得到)。

所以,路由到顯示的動作,我得有三種情況:

project_discusison_path(@project, @discussion) 
    task_discussion_path(@task, @discussion) 
    subtask_discussion_path(@subtask, @discussion) 

如何寫這3例,一個路徑幫手? (看起來像下面)

parent_discussion_path(@parent, @discussion) 

請記住,我可以找到並具有所有變量。只寫路徑是問題。

回答

1

如果你生成一個鏈接 - 爲instance-- link_to,您可以使用此數組語法:

link_to "Show Discussion", [@parent, @discussion]

引擎蓋下,這實現了同樣的事情polymorphic_pathpolymorphic_url方法:

polymorphic_url([@parent, @discussion])