Rails方法::put路由开始“获取”

时间:2019-03-15 09:48:07

标签: ruby-on-rails routes

我的routes.rb中有这个:

scope '/financial' do
  get '',                to: 'financial#index',    as: :financial
  get ':debnr',          to: 'financial#debnr',    as: :financial_debnr
  get ':debnr/pdf/:id',  to: 'financial#pdf',      as: :financial_pdf
  put ':debnr/pdf/:id',  to: 'financial#update',   as: :update_pdf
end

然后我的pdf.html.haml中就有这个了:

= link_to 'Complete this pdf', 
           update_pdf_path(@debnr, @pdf), 
           method: :put, 
           data: { confirm: "You sure?"}

在我的FinancialController中:

def update
  @pdf = Pdf.find(params[:id])
  @pdf.update_attribute(completed: true)
  redirect_to root_path
end

不幸的是,当我单击按钮以完成pdf时,它不起作用。它开始了正常的get操作,如下所示:

Started GET "/financieel/20308/pdf/67" for 127.0.0.1 at 2019-03-15 10:44:53 +0100
Processing by FinancieelController#pdf as HTML

它甚至都没有说“您确定吗?”消息。并完全忽略method: :put。有什么想法吗?

编辑

html看起来像这样:

<a data-confirm="You sure?" rel="nofollow" data-method="put" href="/financial/123456/pdf/42">Complete this pdf</a>

第二次修改

我找到了。我一直在乱七八糟,而且我不小心将所有的javascript文件都注释掉了。

对不起!

1 个答案:

答案 0 :(得分:0)

也许您没有将Rails-ujs(或jquery-ujs)添加到项目中?