2012-06-10 74 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])