向rails资源添加自定义新路由

时间:2016-09-23 18:10:02

标签: ruby-on-rails routes

我的路线文件,我已经定义了一个资源

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}

然后我有一个带有相应路径助手的路由规则new_admin_invoice_path

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}

我尝试手动添加它们

json

但结果错了

data =  json.loads(response.content.decode('utf-8'))

我如何准确地获得路径助手所需的路线?

2 个答案:

答案 0 :(得分:3)

以下是官方指南

中的简易导轨方式
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}

答案 1 :(得分:0)

尝试使用范围,

范围“/ admin”执行资源:发票结束