我有一种情况,我不得不为我的应用程序的另一部分复制一个功能。因为这是两次使用的相同功能,所以我知道我必须更新与之关联的路由。但是我的路线有点不同,因为网址中有两个ID。
最初我的路线是
=link_to edit_admin_customer_content_setting_path(@owner, @owner)
网址将包含:
admin/customer/1/content_settings/1/edit
现在问题是我还需要将这些用于其他功能,即“潜在客户”。考虑到这一点,我做的第一件事就是将我的content_settings路线添加为我的潜在客户'在我的路线文件中。
然而,我最终遇到了一个问题,因为我有两条路线,这些路线取决于我的应用程序部分使用的部分。我也不能将这两个按钮列在彼此旁边,这是不可行的。
=link_to edit_admin_customer_content_setting_path(@owner, @owner)
=link_to edit_admin_prospect_content_setting_path(@owner, @owner)
所以我在
尝试了一条聚合路径=link_to "Edit Content Settings", polymorphic_path([:edit, :admin, @owner, :content_setting, @owner])
enter code here
我一直在
收到错误'edit_admin_customer_content_setting_customer_path'
如果这有点啰嗦,我道歉。为了让这个工作正常,我可能有什么遗漏吗?
答案 0 :(得分:0)
好的,我确实找到了解决方案。问题是我的路线中有两个id,导致我使用(@ owner,@ owner)。但最终永远不需要第二个ID。此外,这会导致问题,因为多态路径并非真正设计为具有两个ID .....实际上,路由通常并不真正设计为具有两个ID。
解决方案是首先修改第二个ID,为此我必须在路由文件中更新我的资源。我的资源是'content_settings'。但它需要'content_setting'。通过使其成为单数,第二个ID被删除,并且它允许我通过我的多态冒险进行。