Як дадаць карыстацкія маршруты ў маршрут рэсурсу

У мяне ёсць invoices_controller , які мае маршруты рэсурсаў. Як наступнае:

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

Цяпер я хачу, каб дадаць функцыянальнасць адпраўкі ў рахунак-фактуру, Як дадаць карыстацкі маршрут, як рахунку /: ідэнтыфікатар/адправіць , што адпраўка запыту сказаць кошт # send_invoice і як я павінен звязаць з ім у поглядах.

Што такое звычайныя рэйкі спосаб зрабіць гэта. Дзякуючы.

31

7 адказы

Дадайце гэта ў маршрутах:

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

34
дададзена
Дзякуй! Быў адно пытанне, хоць, калі я выкарыстоўваю адправіць метад ў кантролеры, я атрымліваю памылку аргументу, як гэта ArgumentError ў InvoicesController # паказаць няправільнае лік аргументаў (2 пры 0) Я мяркую, што рэйкі выкарыстоўвае пасыл ключавое слова некаторыя ўнутраныя органы. Пацешна, змяняючы ўсе «адправіць», каб «сагнуць» на самай справе паслаў электронную пошту, цяпер я думаю, я павінен высветліць, новы дзеяслоў для адпраўкі рахункаў-фактур.
дададзена аўтар Sathish Manohar, крыніца
@SathishManohar ах ах! Я не думаў пра гэта! Так, адправіць гэта метад у Ruby, ruby-doc.org/core-2.0/Object.html#method-i-send . Можа выкарыстоўваць паставіць замест адправіць (мае 2 цэнта)
дададзена аўтар Damien, крыніца

Дадайце гэта ў маршрутах:

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

34
дададзена
Дзякуй! Быў адно пытанне, хоць, калі я выкарыстоўваю адправіць метад ў кантролеры, я атрымліваю памылку аргументу, як гэта ArgumentError ў InvoicesController # паказаць няправільнае лік аргументаў (2 пры 0) Я мяркую, што рэйкі выкарыстоўвае пасыл ключавое слова некаторыя ўнутраныя органы. Пацешна, змяняючы ўсе «адправіць», каб «сагнуць» на самай справе паслаў электронную пошту, цяпер я думаю, я павінен высветліць, новы дзеяслоў для адпраўкі рахункаў-фактур.
дададзена аўтар Sathish Manohar, крыніца
@SathishManohar ах ах! Я не думаў пра гэта! Так, адправіць гэта метад у Ruby, ruby-doc.org/core-2.0/Object.html#method-i-send . Можа выкарыстоўваць паставіць замест адправіць (мае 2 цэнта)
дададзена аўтар Damien, крыніца
resources :invoices do
  resources :items, only: [:create, :destroy, :update]
  get 'send', on: :member
end

<%= link_to 'Send', send_invoice_path(@invoice) %>

Ён будзе ісці ў адправіць дзеянне вашага invoices_controller .

2
дададзена
match '/invoices/:id/send' => 'invoices#send_invoice', :as => :some_name

Для таго, каб дадаць спасылку

<%= button_to "Send Invoice", some_name_path(@invoice) %>
0
дададзена
match '/invoices/:id/send' => 'invoices#send_invoice', :as => :some_name

Для таго, каб дадаць спасылку

<%= button_to "Send Invoice", some_name_path(@invoice) %>
0
дададзена

In Rails >= 4, you can accomplish that with:

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

0
дададзена

In Rails >= 4, you can accomplish that with:

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

0
дададзена