Первый внутри цикла form_tag никогда не попадает в действие контроллера - PullRequest
0 голосов
/ 29 августа 2018

У меня есть форма внутри цикла, которая выглядит следующим образом:

- @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, форма запускается, попадает в контроллер и делает то, что я хочу. Он печатает этот список, и я могу щелкнуть заголовки, чтобы добавить их в календарь:

enter image description here

Однако, когда я нажимаю на первый (Другой 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...