def edit
@exercise = Exercise.find(params[:exercise_id])
@play = @exercise.plays.find(params[:id])
end
def update
@exercise = Exercise.find(params[:exercise_id])
@play = @exercise.plays.find(params[:id])
if @exercise.plays.update_attributes(play_params)
redirect_to @exercise_path
else
render action: :edit
end
end
частичное представление, отображаемое для отображения всех созданных пьес, имеет
<p><%= play.name %></p>
<p><%= play.sets %></p>
<p><%= play.reps %></p>
<%= link_to "edit", edit_exercise_play_path( @exercise, play) %>
, то есть plays_controller: edit,: метод update, на самом деле у меня есть два класса, один - ExerciseController
, а другойодин из них - PlaysController
, ExerciseController
has_many
, я рендерил две партиалы, одну для создания игры, а другую - для показа этой игры на той же странице в той части, которая воспроизводит игру после создания, но теперь я хочу добавитьвозможность редактирования с помощью edit_exercise_play_path,
<%= link_to "Edit", edit_exercise_play_path(@play) %>
, после этого я сталкиваюсь с непревзойденной ошибкой ограничения. Спасибо
resources :exercises do
resources :plays
end
Show.html.erb из ExercisesController
<h2>Your Workout Details </h2>
<p><%= @exercise.workout %></p>
<p><%= @exercise.mode %></p>
<p><%= @exercise.date.strftime("on %A at %H:%M Dated as %d %B") %></p>
<p><%= @exercise.length %></p><br />
<h3> Games you Played </h3>
<%= render @exercise.plays %>
<h3>Add new Game </h3>
<%= render 'plays/form' %>
<%= link_to "Edit", edit_exercise_path %> | |
<%= link_to "Destroy", exercise_path(@exercise), :confirm => "Are you
sure?", :method => :delete %> | |
<%= link_to "Back", root_path %>
"Журналы" GET запущен "/ упражнения / 5" для 127.0.0.1 в 2018-09-25 18:12:21 +0500 Обработка с помощью ExercisesController # показать как параметры HTML: {"id" => "5"} УпражнениеLoad (0.0ms) ВЫБРАТЬ «упражнения». * ОТ «упражнения» ГДЕ «упражнения». «Id» =?LIMIT?[["id", 5], ["LIMIT", 1]] Упражнения на рендеринг / show.html.erb Play Load (0.0ms) SELECT "plays". * FROM "воспроизводит" WHERE "проигрывает". "exerc_id" =?[["exerc_id", 5]] Рендеринг коллекции plays / _play.html.erb [6 раз] (14,0 мс)мс)