我正在创建一个我想用于某些Rails应用程序的新gem。我需要的是:
我想为不同的资源创建一些路由到同一个gem控制器。此外,我需要能够让用户告诉gem,而不是使用gem的默认控制器,它应该使用当前应用程序中的控制器(继承自gem中的控制器)。我认为这与Devise的相似,但我不完全理解它是如何工作的。
此外,我已经尝试使用自定义引擎,但这会创建一些全局路由,我无法创建特定于某些资源的路由。
理想的用例是这样的:
Rails.application.routes.draw do
# Some routes
resources :users do
Gem::Routes.define # Or something similar
end
resources :admins do
Gem::Routes.define to: AdminController # Or something similar
end
end
我希望路线的创建方式如下:
POST users/:id/something gem_controller#something
POST users/:id/something2 gem_controller#something2
POST users/:id/something3 gem_controller#something3
POST admins/:id/something admins_controller#something
POST admins/:id/something2 admins_controller#something2
POST admins/:id/something3 admins_controller#something3
提前致谢!
答案 0 :(得分:0)
这将有效:
Rails.application.routes.draw do
concern :whatever do
member do
post :something
post :something2
post :something3
end
end
resources :users, controller: 'gem' do
concerns :whatever
end
resources :admins, controller: 'admin' do
concerns :whatever
end
end