没有路线匹配[POST]“/ maps / 1 / rows / new”

时间:2017-12-11 02:49:09

标签: ruby-on-rails

我目前正在尝试向地图添加一行但收到路线错误:

  

没有路线匹配[POST]“/ maps / 1 / rows / new”

如果我做一个rake路线,我看到有一条路在这里,所以我有点困惑为什么。

new_map_row GET /maps/:map_id/rows/new(.:format) rows#new

这是我用来创建此行的表单。

<%= form_for @row, method: 'post', url: new_map_row_path do |form| %>
  <div class="field">
    <%= form.label :timeframe %>
    <%= form.text_field :timeframe %>
  </div>

  <div class="actions">
    <%= form.submit %>
  </div>
<% end %>

行控制器

def create
    @row = @map.rows.create(params[:row].permit(:timestamp))
    @row.save

    respond_to do |format|
      if @row.save
        format.html { redirect_to @row.map, notice: 'Row was successfully created.' }
      else
        format.html { render :new }
      end
    end
  end

行模型

class Row < ApplicationRecord
  belongs_to :map
end

1 个答案:

答案 0 :(得分:3)

您不应该发布到new操作本身,这就是呈现表单的内容。 create阶段的目标(new的后续跟踪)实际上是方法POST的收集路径:

<%= form_for @row, method: :post, url: map_rows_path do |form| %>

这就是create行动开始的地方。