У меня есть форма внутри цикла, которая выглядит следующим образом:
- @templates.each do |template|
tr
td.col-md-2
= template.kind.capitalize
td.col-md-9
= form_tag(add_workout_from_template_path, method: :post) do
= hidden_field_tag 'date', params[:date]
= hidden_field_tag 'athlete', params[:athlete]
= hidden_field_tag 'title', template.title
= hidden_field_tag 'kind', template.kind
= hidden_field_tag 'distance', template.distance
= hidden_field_tag 'duration', template.duration
= hidden_field_tag 'notes', template.notes
= hidden_field_tag 'video', template.video
= submit_tag(template.title, class: 'fake-button')
td.col-md-1
= link_to image_tag('cancel.png'),
template_path(template),
method: :delete
Для итераций 2, 3 и 4 это работает как шарм. Всякий раз, когда я нажимаю template.title
, форма запускается, попадает в контроллер и делает то, что я хочу. Он печатает этот список, и я могу щелкнуть заголовки, чтобы добавить их в календарь:
Однако, когда я нажимаю на первый (Другой 20x ...), он никогда не создает то, что должен в контроллере, он просто создает пустой объект и перенаправляет. Когда я пытаюсь поднять в контроллере, он никогда не поднимается на первом, так что по какой-то причине кажется, что он вообще не попадает в контроллер?
Что я здесь не так делаю?
код контроллера:
def add_workout_from_template
@athlete = User.find_by(slug: params[:athlete])
@workout = Workout.create!(
user: @athlete,
date: params[:date],
title: params[:title],
kind: params[:kind],
distance: params[:distance] || 0,
duration: params[:duration] || 0,
notes: params[:notes],
video: params[:video]
)
redirect_to team_user_workouts_path(current_user.team,
current_user, athlete: @athlete)
end