Я пытаюсь собрать form_tag, который редактирует несколько объектов Shift. У меня правильно построена форма, и она передает правильные параметры. Я проверил, что параметры работают с корректным обновлением объектов в консоли. Однако, когда я нажимаю кнопку отправки, я получаю сообщение об ошибке:
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" (или любое число, соответствующее существующему сдвигу), я получаю правильную ошибку о том, что параметры не установлены, но когда я передаю параметры без какого-либо идентификатора, ошибки.
Как мне заставить его перестать искать идентификатор в конце URL?