Как добавить пользовательские маршруты маршрут ресурса

У меня есть invoices_controller, у которого есть маршруты ресурса. Как следующие:

resources :invoices do
  resources :items, only: [:create, :destroy, :update]
end

Теперь я хочу, чтобы добавить функциональность, чтобы отправить счет-фактуру, как я могу добавить пользовательский маршрут, как счета-фактуры/:ИД/отправить, который обработает запрос и сказать `счета-фактуры#send_invoice и как мне ссылку на нее в представлениях.

Каков обычный путь рельсы, чтобы сделать это. Спасибо.

Решение

Добавить это в ваши маршруты:

resources :invoices do
  post :send, on: :member
end

Или

resources :invoices do
  member do
    post :send
  end
end

Тогда в ваши взгляды:

Или

Конечно, вы не привязаны к метод POST

Комментарии (2)
resources :invoices do
  resources :items, only: [:create, :destroy, :update]
  get 'send', on: :member
end

Он пойдет на "Отправить" действия invoices_controller ваш`.

Комментарии (0)
match '/invoices/:id/send' => 'invoices#send_invoice', :as => :some_name

Чтобы добавить ссылку

Комментарии (0)

В Rails >= 4, Вы можете добиться этого:

матч 'gallery_:ИД' => 'галерея#шоу', :через => [:вам], :как => 'gallery_show' `

Комментарии (0)