我在循环中有一个看起来像这样的表单:
- @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