2016-09-23 41 views
0

我我的路线文件,我已经定义了一个资源添加自定义新航线

namespace :admin do 
    resources :invoices, only: [:index, :new] 
end 

那么我就用相应的路径帮手new_admin_invoice_path

new_admin_invoice GET /admin/invoices/new(.:format) admin/invoices#new 

的路由规则,但是,如何才能轨道资源我添加两个新的规则,所以thуe样子

new_admin_incoming_invoice GET /admin/invoices/new/incoming(.:format) admin/invoices#new {:type=>:incoming} 
new_admin_outgoing_invoice GET /admin/invoices/new/outgoing(.:format) admin/invoices#new {:type=>:outgoing} 

我尝试手动添加

resources :invoices, only: [:index, :new] do 
    get 'new/incoming', on: :collection, action: :new, type: :incoming 
    get 'new/outgoing', on: :collection, action: :new, type: :outgoing 
end 

,但得到错误的结果

new_incoming_admin_invoices GET /admin/invoices/new/incoming(.:format) admin/invoices#new {:type=>:incoming} 
new_outgoing_admin_invoices GET /admin/invoices/new/outgoing(.:format) admin/invoices#new {:type=>:outgoing} 

我怎样才能得到完全与路径路由帮手我需要什么?

回答

0

尝试使用范围一样,

范围 “/ admin” 的办资源:发票结束

+0

它不起作用 – Molfar

2

下面是官方指南简单轨方式

resources :invoices, only: [:index] do 
    get 'incoming', on: :new, type: :incoming, action: :new 
end 

结果

incoming_new_admin_invoice GET /admin/invoices/new/incoming(.:format) admin/invoices#new {:type=>:incoming}