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
.