首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由路径前缀Ruby on Rails

路由路径前缀Ruby on Rails
EN

Stack Overflow用户
提问于 2014-04-19 19:42:25
回答 1查看 710关注 0票数 0

这个问题更多的是一个好奇心,而不是一个实际的问题(我认为)。

所以我创建了一个控制器,它有两个函数,索引和gen_seeds。当我为它们中的每一个创建路由时,我执行了以下操作:

代码语言:javascript
复制
resources :seeder, only: [:index] do
  collection do
    get 'gen_seeds'
  end
end

运行得很好。动词、URI模式和操作都是正确的。引起我好奇心的是前缀。前缀为:

代码语言:javascript
复制
gen_seeds_backoffice_seeder_index
backoffice_seeder_index

我想知道为什么这两个前缀的名字都有索引。如果我添加,任何其他函数也会将索引作为最后的前缀名称。我的目标只是

代码语言:javascript
复制
gen_seeds_backoffice_seeder
backoffice_seeder

但我确实意识到,这与应用程序的工作并不真正相关,但它确实如此。但好奇心占了我的上风。有人知道为什么会这样吗?这可能是我的一个错误,因为我还是Ruby on Rails的新手。

编辑--确定这是我的路由文件

代码语言:javascript
复制
namespace :backoffice do
delete :teams, to: 'teams#destroy_all'
resources :teams, only: [:index, :new, :destroy, :create] do
  collection do 
    post :import 
  end
end
resources :players, only: [:index, :destroy]
resources :seeder, only: [:index] do
  collection do
    get 'gen_seeds'
  end
end

结束

这是我的路线

代码语言:javascript
复制
backoffice_teams                  DELETE /backoffice/teams(.:format)            backoffice/teams#destroy_all
import_backoffice_teams           POST   /backoffice/teams/import(.:format)     backoffice/teams#import
                                  GET    /backoffice/teams(.:format)            backoffice/teams#index
                                  POST   /backoffice/teams(.:format)            backoffice/teams#create
new_backoffice_team               GET    /backoffice/teams/new(.:format)        backoffice/teams#new
backoffice_team                   DELETE /backoffice/teams/:id(.:format)        backoffice/teams#destroy
backoffice_players                GET    /backoffice/players(.:format)          backoffice/players#index
backoffice_player                 DELETE /backoffice/players/:id(.:format)      backoffice/players#destroy
gen_seeds_backoffice_seeder_index GET    /backoffice/seeder/gen_seeds(.:format) backoffice/seeder#gen_seeds
backoffice_seeder_index           GET    /backoffice/seeder(.:format)           backoffice/seeder#index
EN

回答 1

Stack Overflow用户

发布于 2014-04-20 17:22:57

也许您可以使用单个resource来尝试sp1rs的解决方案

代码语言:javascript
复制
#config/routes.rb
resource :seeder, only: :index do
    get :gen_seeds, on: :collection
end

编辑-阅读单独的资源文档,它可能不是您想要的;但是可以帮助您

我在使用另一个我正在做的应用时遇到了同样的问题。问题是路由的名称--我用的是resources :posts --它会显示posts_index_path等。而如果我使用resources :post,它会根据需要更改路径名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23169597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档