【问题标题】: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

另外,我的派对模式路线如下所示:

【问题讨论】:

  • 试试这个:&lt;%=form_for @party, :url =&gt; { :action =&gt; "update", :controller=&gt;"parties"}, :method=&gt;"patch" do |f| %&gt;
  • 我收到同样的错误信息。如果我尝试“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'
  • 更改为更新..不是补丁

标签: ruby-on-rails routes form-for controllers


【解决方案1】:

如果您省略选项,rails 会判断它是否是创建/更新表单。否则,如果您指定选项,则需要使用单独的表单来创建/更新。

<%= form_for @parties do |f| %>
...
<% end %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多