【发布时间】:2014-09-21 19:07:42
【问题描述】:
我有一个 TextsController,每个 Text 可以是不同的(固定的)类型。
假设我有一个“书”类型。我想创建一个资源路由来显示文本,我希望路由看起来像这样:
/book/my-book
另一种类型,例如“手动”,应导致使用以下 URL:
/manual/rtfm
好吧,我 have RTFM 我无法让它按照我认为应该工作的方式工作。
这是我尝试过的:
scope '/:text_type' do
resources :texts, only: :show
end
rake routes 向我展示了以下路线规范:
text GET /:text_type/texts/:id(.:format) texts#show
我不明白为什么应该存在静态“文本”部分?
所以我尝试包含一个空的path 选项:
scope '/:text_type', path: '' do
resources :texts, only: :show
end
这并没有改变任何东西,我猜是因为(from source)我对scope 的第一个参数实际上覆盖了给path 的任何值。
唯一让我得到我正在寻找的路线设置是:
scope '/:text_type' do
resources :texts, only: :show, path: ''
end
这似乎完全违背了scope 的目的,即“[范围] 一组到给定默认选项的路由”。
为什么以前的任何表单实际上都不会为我的resources 调用覆盖path?
在我看来像一个错误?
那么我应该提交一个错误报告,还是你会用 f* 手册重击我的头? ^^
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 routing routes