2017-03-17 64 views
0

我正在创建一个新的创业板,我想用于某些Rails应用程序。我需要的是这样的:如何为宝石添加路线

我想创建一些路由为不同的资源去同一个宝石控制器。此外,我需要能够让用户告诉宝石,而不是使用宝石的默认控制器,它应该使用当前应用中的控制器(从宝石中的控制器继承)。我认为这与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 

谢谢!

+1

为什么不看,如果你怀疑它会回答的问题是什么设计呢? – coreyward

回答

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