我有一个多态资源讨论,可以属于Project,Task或Subtask。
有一次,我希望重新路由以显示讨论控制器的行动。要做到这一点,我需要讨论ID(我从params获得),我需要知道父母是什么(我也从params得到)。
因此,为了显示行动路线,我必须有3个案例:
project_discusison_path(@project, @discussion)
task_discussion_path(@task, @discussion)
subtask_discussion_path(@subtask, @discussion)
如何在一个路径助手中编写这3个案例? (看起来像下面这样)
parent_discussion_path(@parent, @discussion)
请记住,我可以找到并拥有所有变量。只写路径就是问题所在。
答案 0 :(得分:1)
如果您在 - 例如 - link_to
中生成链接,则可以使用此数组语法:
link_to "Show Discussion", [@parent, @discussion]
在幕后,这与polymorphic_path
和polymorphic_url
方法完全相同:
polymorphic_url([@parent, @discussion])