2016-06-13 48 views
0

我正在使用<%= form_for @invoice, url: {action: :pay} do |f| %>,但表单被发送到更新操作,而不是我在控制器中定义的“付款”操作。我错过了什么?rails 4 form_for自定义动作

+0

你使用的是reso urces路线? – uzaif

+0

对不起,我忘了提到这一点。我定义了'发布'发票/:id'=>'invoices#pay'' – mrtnmgs

+0

你能告诉我你的路线吗? – uzaif

回答

1

你PARAM :id在你的路线,你应该在你的表格操作分配参数去id,试试这个

<%= form_for @invoice, url: {action: "pay", params: {id: @invoice.id}} %> 

或者你可以使用一个path

<%= form_for @invoice, url: for_pay_path(@invoice) %> 

for_pay_path变化pay路径的行动,你可以看到输出rake routes