Rails路由:我缺少什么? [英] Rails routing: What am I missing?
本文介绍了Rails路由:我缺少什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的应用程序具有票证,并且可以解决票证。我可以通过AJAX发布到:resolve操作,没有任何问题,但是我不能通过普通的HTML表单发布。我得到没有路线匹配 / tickets / 321 / resolve
。 HTML表单和JS都指向相同的确切URL。我在做什么错了?
My app has Tickets, and a ticket can be "resolved". I can POST via AJAX to the :resolve action with no issues, but I cannot POST via a normal HTML form. I get No route matches "/tickets/321/resolve"
. Both the HTML form and the JS point to the same exact URL. What am I doing wrong?
路线:
resources :tickets do
post :resolve, :on => :member
end
控制器:
def resolve
resource.resolved!
respond_to do |wants|
wants.html { redirect_to :back }
wants.js
end
end
表格:
= form_for(ticket, :url => resolve_ticket_path(ticket)) do |f|
...
推荐答案
实际上,当您在尝试通过默认情况下发送具有现有资源(票证)轨道的表单将发送 PUT
请求,因此应设置:method => :post
清除或更改
Actually when you are trying to send your form with exists resource (ticket) rails by default will send PUT
request, so you should set :method => :post
clear or change route from
post :resolve, :on => :member
到
put :resolve, :on => :member
这篇关于Rails路由:我缺少什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文