【发布时间】:2018-07-01 12:23:37
【问题描述】:
我有嵌套资源:
resources :volumes, only: :show do
resources :chapters, only: :show do
resources :characters, only: :index, :show
end
end
end
这给了我以下路线:
volume_chapter_characters GET /volumes/:volume_id/chapters/:chapter_id/characters(.:format) characters#index
volume_chapter_character GET /volumes/:volume_id/chapters/:chapter_id/characters/:id(.:format) characters#show
volume_chapter GET /volumes/:volume_id/chapters/:id(.:format) chapters#show
volume GET /volumes/:id(.:format) volumes#show
我不确定它是否完全是 RESTful,但我想知道是否有办法删除 URL 的 volumes/ 部分,这样我就会有类似的东西:
volume_chapter_characters GET /:volume_id/chapters/:chapter_id/characters(.:format) characters#index
volume_chapter_character GET /:volume_id/chapters/:chapter_id/characters/:id(.:format) characters#show
volume_chapter GET /:volume_id/chapters/:id(.:format) chapters#show
volume GET /:id(.:format)
可以吗?
【问题讨论】:
-
这可以做,但可能不应该做。如果你这样做,你需要非常仔细地观察路线的顺序。一个小错误,您的
GET /users尝试加载 ID 为“users”的卷,而不是获取用户列表。
标签: ruby-on-rails ruby routes