没有路线匹配错误
Posted
技术标签:
【中文标题】没有路线匹配错误【英文标题】:No route matches error 【发布时间】:2016-11-14 03:41:34 【问题描述】:我正在构建一个 Rails 应用程序,并正在使用 form_for 制作一个表单。我不断收到错误消息,即没有与我指定的路由匹配,但是当我运行 rake 路由时,我看到了我指定的路由(或者至少我认为我这样做了)。有人可以帮忙吗?
我的 form_for 标签是:
<%=form_for @party, :url => :action => "update", :controller=>"parties", :method=>"patch" do |f| %>
在我的派对控制器中,我有:
def update
@party.find(params[:id])
@party.update_attributes
if @party.save
redirect_to '/login'
end
end
另外,我的派对模式路线如下所示:
【问题讨论】:
试试这个:<%=form_for @party, :url => :action => "update", :controller=>"parties", :method=>"patch" do |f| %>
我收到同样的错误信息。如果我尝试“put”而不是“patch!”也是同样的事情!
你能发布错误的完整堆栈跟踪吗?
app/views/application/_rsvp.html.erb:5:in _app_views_application__rsvp_html_erb__1942726801474912626_70323230539220' app/controllers/sessions_controller.rb:10:in
create'
更改为更新..不是补丁
【参考方案1】:
如果您省略选项,rails 会判断它是否是创建/更新表单。否则,如果您指定选项,则需要使用单独的表单来创建/更新。
<%= form_for @parties do |f| %>
...
<% end %>
【讨论】:
以上是关于没有路线匹配错误的主要内容,如果未能解决你的问题,请参考以下文章
没有路线匹配[POST]“/ projects / 16 / todos / 35 / edit”
Angular 6 组件根据路线变化,错误:选择器“app-navbar”不匹配任何元素
路由错误克隆目录后没有路由匹配 [GET] "/logout"