这个问题更像是一种好奇心,而不是一个实际问题(我认为)。
所以我创建了一个具有2个函数的控制器,index和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
答案 0 :(得分:0)
也许您可以使用单数resource尝试sp1rs
的解决方案:
#config/routes.rb
resource :seeder, only: :index do
get :gen_seeds, on: :collection
end
编辑 - 阅读单一资源文档,它可能不是您正在寻找的;但无论哪种方式都可以帮到你
我遇到了另一个我正在做的应用程序的确切问题。问题是路线的名称 - 我有resources :posts
- 会显示posts_index_path
等。如果我使用resources :post
,它会更改路径名称以适合