Невозможно правильно отобразить кнопку редактирования и удаления в ассоциации рельсов - PullRequest
0 голосов
/ 29 января 2020

У меня два эшафота в рельсах. Первый - это проект, а второй - этап. Проект имеет отношение один ко многим со стадией. Я рендерил проект и его этапы в project#show в таблицах, всякий раз, когда я нажимаю кнопку редактирования этапа, всегда страница первого этапа отображается и обновляется. Я хочу, чтобы текущий этап редактировался, когда пользователь нажимает на этап редактирования.

stage_controller.rb

  def edit
    @stage = Stage.find(params[:project_id])
    @project = Project.find(params[:project_id])
  end
  def update
    respond_to do |format|
      if @stage.update(stage_params)
        format.html { redirect_to project_path(@project), notice: 'Stage was successfully updated.' }
        format.json { render :show, status: :ok, location: @stage }
      else
        format.html { render :edit }
        format.json { render json: @stage.errors, status: :unprocessable_entity }
      end
    end
  end

projects_controller.rb

  def show
    @project = Project.includes({stages: {tasks: :sub_tasks}}).find(params[:id])
    @stages = @project.stages
  end

rout.rb

  resources :projects do
    resources :stages do
      resources :tasks do
        resources :sub_tasks
      end
    end
  end

проект шоу. html .erb

  <tbody>
      <% @stages.each do |stage| %>
        <tr class="stage">
          <td><%= stage.stage %></td>
          <td><%= stage.planned_start_date.strftime("%d-%m-%Y") %></td>
          <td><%= stage.planned_end_date.strftime("%d-%m-%Y") %></td>

          <td><%= link_to "Add Task", new_project_stage_url(@project, stage), :class=>"button primary small" %></td>

          <td><%= link_to 'Edit', edit_project_stage_path(@project), :class=>"button secondary small" %></td>
          <td><%# link_to 'Destroy', stage, method: :delete, data: { confirm: 'Are you sure?' } %></td>
        </tr>

        <% stage.tasks.each do |task| %>
          <tr>
            <td class="text-center"><%= task.task_name %></td>
            <td><%= task.planned_start_date.strftime("%d-%m-%Y") %></td>
            <td><%= task.planned_end_date.strftime("%d-%m-%Y") %></td>

            <td><%= link_to "Add Sub Task", new_project_stage_task_sub_task_url(@project, stage, task), :class=>"button primary small" %></td>
            <td><%# link_to 'Edit', edit_task_path(task) %></td>
            <td><%# link_to 'Destroy', task, method: :delete, data: { confirm: 'Are you sure?' } %></td>
          </tr>
</tbody>

1 Ответ

0 голосов
/ 29 января 2020

stage_controller.rb

  def edit
    @project = Project.find(params[:project_id])
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...