ruby-on-rails - Rails 5.2:是否可以从这些嵌套路由中删除第一个资源名称?
问题描述
我有嵌套资源:
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 但我想知道是否有一种方法可以删除volumes/
URL 的一部分,以便我得到类似的东西:
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)
可以做到吗?
解决方案
您可以添加一个path
选项。
Rails.application.routes.draw do
resources :volumes, only: :show, path: '' do
resources :chapters, only: :show do
resources :characters, only: [:index, :show]
end
end
end
推荐阅读
- java - 如何使用 Selenium 在撰写部分中单击更多选项?
- typescript - 缩小工厂返回类型而不通过类的最佳方法
- visual-studio - 如何正确停止运行 dotnet core web 应用程序?
- scala - 输入 SQL 并输出集合的 Scala 库,但适用于 SPARQL / Gremlin?
- c# - WPF / WindowChrome / 模糊“故障”背后
- android - 我想在我的应用上添加带有广告的退出警报对话框
- java - 教科书中的一个铸造问题——是 0.05 还是 0.5?
- linux - IPython 未打开(语法无效)
- angularjs - 等待量角器与页面同步时出错:“angul arJS 可测试性和角度可测试性都未定义
- python - 我的数据集有超过 10,000 个项目,为什么这没有反映在我的列表中?