【发布时间】:2016-04-19 08:28:25
【问题描述】:
我的路线发生了我预期的冲突,但我不知道如何浅层嵌套资源以获得我想要的结果。 (或者至少我认为浅嵌套是需要做的)
这两个网址冲突了
category_item 显示页面
guides/:guide_id/categories/:category_id/:id
与类别编辑、新页面等冲突
/guides/:guide_id/categories/:id/edit
我正在使用友好的 id gem,所以它认为“编辑”是 :id
我想把category_item url结构改成
guides/:guide_id/:category_id/:id
(减去 category_item 的 /categories)
这意味着向大多数人显示并被搜索机器人拾取的页面具有更短的更漂亮的 url,它可以防止 url 发生冲突。
我只是不能让它发生。
这是路线
resources :guides do
resources :categories, only: [:new, :create, :edit, :update] do
resources :category_items, path: "", shallow: true, only: [:update, :new, :create, :edit, :show]
resources :category_item_keys, path: "keys", only: [:update, :new, :create] do
get :edit, on: :collection #-> url.com/guides/:guide_id/:category_id/keys/edit
end
end
end
如果可能,我只希望删除 category_items 的 /categories。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routes nested-routes