我正在尝试将编辑几个 Shift 对象的 form_tag 放在一起。我已经正确构建了表单,并且它传递了正确的参数。我已经验证这些参数可以在控制台中正确更新对象。但是,当我单击提交按钮时,出现错误:
ActiveRecord::RecordNotFound in ShiftsController#update_individual
Couldn't find Shift without an ID
我正在调用的控制器的路由如下所示:
map.resources :shifts, :collection => { :update_individual => :put }
ShiftsController 中的方法是这样的:
def update_individual
Shift.update(params[:shifts].keys, params[:shifts].values)
flash[:notice] = "Schedule saved"
end
相关的表格部分是:
<% form_tag( update_individual_shifts_path ) do %>
... (fields for...)
<%= submit_tag "Save" %>
<% end %>
为什么这不起作用?如果我浏览到 URL:“ http://localhost:3000/shifts/update_individual/5 ”(或与现有班次相对应的任何数字),我会收到关于没有设置参数的正确错误,但是当我传递参数时如果没有某种 ID,它就会出错。
如何让它停止在 URL 末尾查找 ID?