这个问题更多的是一个好奇心,而不是一个实际的问题(我认为)。
所以我创建了一个控制器,它有两个函数,索引和gen_seeds。当我为它们中的每一个创建路由时,我执行了以下操作:
resources :seeder, only: [:index] do
collection do
get 'gen_seeds'
end
end运行得很好。动词、URI模式和操作都是正确的。引起我好奇心的是前缀。前缀为:
gen_seeds_backoffice_seeder_index
backoffice_seeder_index我想知道为什么这两个前缀的名字都有索引。如果我添加,任何其他函数也会将索引作为最后的前缀名称。我的目标只是
gen_seeds_backoffice_seeder
backoffice_seeder但我确实意识到,这与应用程序的工作并不真正相关,但它确实如此。但好奇心占了我的上风。有人知道为什么会这样吗?这可能是我的一个错误,因为我还是Ruby on Rails的新手。
编辑--确定这是我的路由文件
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结束
这是我的路线
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发布于 2014-04-20 17:22:57
也许您可以使用单个resource来尝试sp1rs的解决方案
#config/routes.rb
resource :seeder, only: :index do
get :gen_seeds, on: :collection
end编辑-阅读单独的资源文档,它可能不是您想要的;但是可以帮助您
我在使用另一个我正在做的应用时遇到了同样的问题。问题是路由的名称--我用的是resources :posts --它会显示posts_index_path等。而如果我使用resources :post,它会根据需要更改路径名
https://stackoverflow.com/questions/23169597
复制相似问题