我目前正在尝试向地图添加一行但收到路线错误:
没有路线匹配[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
答案 0 :(得分:3)
您不应该发布到new
操作本身,这就是呈现表单的内容。 create
阶段的目标(new
的后续跟踪)实际上是方法POST的收集路径:
<%= form_for @row, method: :post, url: map_rows_path do |form| %>
这就是create
行动开始的地方。