を持っています invoices_controller
リソースルートがあります。次のように:
resources :invoices do
resources :items, only: [:create, :destroy, :update]
end
次に、送信機能を請求書に追加します。カスタムルートをinvoices/:id/send
と言うリクエストをディスパッチするinvoices#send_invoice
およびビューでどのようにリンクする必要があります。
従来のRailsの方法です。ありがとう。
これをルートに追加します。
resources :invoices do
post :send, on: :member
end
または
resources :invoices do
member do
post :send
end
end
次に、あなたの意見で:
<%= button_to "Send Invoice", send_invoice_path(@invoice) %>
または
<%= link_to "Send Invoice", send_invoice_path(@invoice), method: :post %>
もちろん、あなたはPOSTメソッドに縛られていません
resources :invoices do
resources :items, only: [:create, :destroy, :update]
get 'send', on: :member
end
<%= link_to 'Send', send_invoice_path(@invoice) %>
invoices_controller
のsend
アクションに移動します。
Rails> = 4では、次のようにして実現できます。
match 'gallery_:id' => 'gallery#show', :via => [:get], :as => 'gallery_show'
match '/invoices/:id/send' => 'invoices#send_invoice', :as => :some_name
リンクを追加するには
<%= button_to "Send Invoice", some_name_path(@invoice) %>