rutas restful rails que ruby-on-rails ruby-on-rails-3 rails-routing

ruby on rails - restful - Cómo agregar rutas personalizadas a la ruta de recursos



rutas en ruby (4)

Tengo un invoices_controller que tiene rutas de recursos. Como siguiendo:

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

Ahora quiero agregar una funcionalidad de envío a la factura, ¿cómo puedo agregar una ruta personalizada como invoices/:id/send que invoices/:id/send la solicitud para decir invoices#send_invoice y cómo debo vincularlo a las vistas?

¿Cuál es la forma convencional de los rieles para hacerlo? Gracias.


Agregue esto en sus rutas:

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

O

resources :invoices do member do post :send end end

Entonces en tus puntos de vista:

<%= button_to "Send Invoice", send_invoice_path(@invoice) %>

O

<%= link_to "Send Invoice", send_invoice_path(@invoice), method: :post %>

Por supuesto, no estás vinculado al método POST


En Rails> = 4, puedes lograr eso con:

match ''gallery_:id'' => ''gallery#show'', :via => [:get], :as => ''gallery_show''


match ''/invoices/:id/send'' => ''invoices#send_invoice'', :as => :some_name

Para agregar un enlace

<%= button_to "Send Invoice", some_name_path(@invoice) %>


resources :invoices do resources :items, only: [:create, :destroy, :update] get ''send'', on: :member end <%= link_to ''Send'', send_invoice_path(@invoice) %>

Irá a la acción de send de su invoices_controller .