在路由中,从 w/in 范围块覆盖 scope-defined 名称

In routes, override scope-defined name from w/in the scope block

假设您已经为一堆路由创建了一个范围:

scope 'author', as: 'author' do
  get 'search'     => 'author#search'
  get 'publishers' => 'author#publishers'
  get 'books'      => 'author#my_books', as: 'my_books'
  get 'stores'     => 'author#stores'
end

范围自然会为每个请求创建路径;例如,search 将有一个名为 author_search_path 的路径。

您如何从范围块内覆盖路径中范围的包含?例如,books 重命名为 my_books,但范围使其成为 author_my_books_path。是否可以将路径重命名为 my_books_path(没有 author_)而不将行移到范围块之外?

因为author不是资源,我认为浅薄或collections都不能使用。


注:以上并非实际数据,仅为遵守隐私规则的示例。

不,我想不出不把它移到 scope 块之外的方法。这是我要放在 scope 块之后的内容:

get 'author/books' => 'author#my_books', as: 'my_books'