我在我的应用中构建了一个功能,我在其中创建了一些可以在我的数据库中更改的内容设置。但是我遇到了一个需要我使用多态路由的问题。这最终导致了很多问题,因为我的路线有两个与之关联的ID。我意识到这就是我的路径文件中的资源是复数的原因。所以我把它变成了单数,现在我遇到了解决这些简单路线的问题。
我的路线文件是这样的
concern :content_settings do
resources :content_setting, only: [:index, :edit, :delete, :update]
end
当我运行rake路线时,我正在这样做
admin_customer_content_setting_index GET /admin/customers/:customer_id/content_setting(.:format) admin/content_setting#index
edit_admin_customer_content_setting GET /admin/customers/:customer_id/content_setting/:id/edit(.:format) admin/content_setting#edit
admin_customer_content_setting PATCH /admin/customers/:customer_id/content_setting/:id(.:format) admin/content_setting#update
PUT /admin/customers/:customer_id/content_setting/:id(.:format) admin/content_setting#update
现在我基本上处于需要实现一条路径到我的新功能的编辑选项的位置。我一直在努力尝试......
=link_to edit_admin_customer_content_setting_path(@owner)
我继续收到“无路由选项”错误。有人知道我有什么遗失的吗?如果需要,我很乐意展示更多我的代码。
非常感谢!
答案 0 :(得分:2)
请试试这个
= link_to edit_admin_customer_content_setting_path(customer_id: @owner.id, id: @content.id)
当您查看rake routes
的输出时,您会看到在第三列中您被告知它所期望的参数:
edit_admin_customer_content_setting GET /admin/customers/:customer_id/content_setting/:id/edit(.:format) admin/content_setting#edit
在您的情况下:customer_id
和id
更新
如果您想避免将两个ID传递给助手,可以使用浅路线。请查看documentation here(向下滚动浅嵌套)